案例1:爬取豆瓣电影Top250
目标:获取豆瓣电影Top250的电影名称、评分和评价人数等信息。
方法:使用requests库发送HTTP请求,BeautifulSoup库解析网页内容,csv库保存数据到CSV文件。
代码示例:
import requests
from bs4 import BeautifulSoup
import csv
url = 'https://movie.douban.com/top250'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}
def parse_html(html):
soup = BeautifulSoup(html, 'lxml')
movie_list = soup.find('ol', class_='grid_view').find_all('li')
for movie in movie_list:
title = movie.find('div', class_='hd').find('span', class_='title').get_text()
rating_num = movie.find('div', class_='star').find('span', class_='rating_num').get_text()
comment_num = movie.find('div', class_='star').find_all('span')[-1].get_text()
writer.writerow([title, rating_num, comment_num])
def save_data():
f = open('douban_movie_top250.csv', 'a', newline='', encoding='utf-8-sig')
global writer
writer = csv.writer(f)
writer.writerow(['电影名称', '评分', '评价人数'])
for i in range(10):
url = f'https://movie.douban.com/top250?start={
i*25}&filter='
response = requests.get(url, headers=headers)
parse_html(response.text)
f.close()
if __name__ == '__main__':
save_data()
案例2:爬取猫眼电影Top100
目标:获取猫眼电影Top100的电影名称、主演和上映时间等信息。
方法:使用requests库发送HTTP请求,正则表达式解析网页内容,txt文件保存数据。
代码示例:
import requests
import re
url = 'https://maoyan.com/board/4'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}
def parse_html(html):
pattern = re.compile('<p class="name"><a href=".*?" title="(.*?)" data-act="boarditem-click" data-val="{movieId:\\d+}">(.*?)</a></p>.*?<p class="star">(.*?)</p>.*?<p class="releasetime">(.*?)</p>', re.S)
items = re.findall(pattern, html)
for item in items:
yield {
'电影名称': item[1],
'主演': item[2].strip(),
'上映时间': item[3]
}
def save_data():
f = open('maoyan_top100.txt', 'w', encoding='utf-8')
for i in range(10):
url = f'https://maoyan.com/board/4?offset={
i*10}'
response = requests.get(url, headers=headers)
for item in parse_html(response.text):
f.write(str(item) + '\n')
f.close()
if __name__ == '__main__':
save_data()
案例3:爬取某吧帖子内容
目标:获取某吧中特定帖子的所有回复内容。
方法:使用requests库发送HTTP请求,正则表达式解析网页内容,csv文件保存数据。
代码示例:
import csv
import requests
import re
import time
def main(page):
url = f'https://tieba.baidu.com/p/7882177660?pn={
page}'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'
}
resp = requests.get(url, headers=headers)
html = resp.text
comments = re.findall('style="display:;"> (.*?)。</div>', html)
users = re.findall('class="p_author_name j_user_card" href=".*?" target="_blank">(.*?)</a>', html)
comment_times = re.findall('楼</span><span class="tail-info">(.*?)。</span><div', html)
with open('01.csv', 'a', encoding='utf-8') as f:
csvwriter = csv.writer(f)
csvwriter.writerow(('评论用户', '评论时间', '评论内容'))
for u, c, t in zip(users, comments, comment_times):
if 'img' in c or 'div' in c or len(u) > 50:
continue
csvwriter.writerow((u, t, c))
print(f'第{
page}页爬取完毕')
if __name__ == '__main__':
for page in range(1, 8): # 爬取前7页的内容
main(page)
time.sleep(2)
案例4:多线程爬取小说章节内容
目标:获取某小说网中特定小说的多个章节内容,并存储到数据库中。
方法:使用requests库发送HTTP请求,lxml库解析网页内容,正则表达式提取小说内容,pymysql库存储数据到MySQL数据库,ThreadPoolExecutor实现多线程爬取。
代码示例(部分):
import requests
from lxml import etree
import re
import pymysql
from time import sleep
from concurrent.futures import ThreadPoolExecutor
def get_conn():
conn = pymysql.connect(host="127.0.0.1", user="root", password="root", db="novels", charset="utf8")
cursor = conn.cursor()
return conn, cursor
def close_conn(conn, cursor):
cursor.close()
conn.close()
def get_xpath_resp(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'}
resp = requests.get(url, headers=headers)
tree = etree.HTML(resp.text)
return tree, resp
案例5:爬取全国高校名单
目标:获取全国高校名单,并保存到TXT文件中。
方法:使用requests库发送HTTP请求,正则表达式解析网页内容。
代码示例(部分):由于具体实现细节可能因目标网站结构而异,此处仅提供大致框架和思路。
import requests
import re
url = '目标高校名单页面的URL'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/XX.X.XXXX.XXX Safari/537.36'
}
response = requests.get(url, headers=headers)
html = response.text
# 使用正则表达式解析网页内容,提取高校名单
# 具体正则表达式需根据目标网站结构编写
pattern = re.compile('高校名单的正则表达式')
universities = re.findall(pattern, html)
with open('全国高校名单.txt', 'w', encoding='utf-8') as f:
for university in universities
—————其他案例分享—————
1.Python图片转字符画
2.200行Python代码实现20481
3.Python3实现火车票查询工具
4.高德API+Python解决租房问题
5.IPython3色情图片识别
6.Python破解验证码
7.Python实现简单的web服务器
8.Ipygame开发打飞机游戏
9.Django搭建简易博客
10.Python基于共现提取《釜山行》人物关系
11.基于scrapy爬虫的天气数据采集(python)
12.Flask开发轻博客
13.Python3图片隐写术
14.Python实现简易Shell1
15.使用Python解数学方程
16.PyQt实现简易浏览器17.神经网络实现手写字符识别系统
18.Python实现简单面板
19.Python实现3D建模工具
20.NBA常规赛结果预测一一利用Python进行比赛数据分析
21.神经网络实现人脸识别任务
22.Python文本解析器
23.Python3 & OpenCV 视频转字符动画
24.Python3实现淘女郎照片爬虫
25.Python3实现简单的FTP认证服务器
26.基于Flask与MySQL实现番剧推荐系统
27.Python实现端口扫描器
28.使用Python 3编写系列实用脚本
29.Python实现康威生命游戏
30.川普撞脸希拉里(基于OpenCV的面部特征交换)
- Python 3实现Markdown解析器
32.Python气象数据分析-《Python数据分析实战》
33.Python实现键值数据库
34.k-近邻算法实现手写数字识别系统
35.ebay在线拍卖数据分析
36.Python实现英文新闻摘要自动提取
37.Python实现简易局域网视频聊天工具
38.基于Flask及爬虫实现微信娱乐机器人
39.Python实现Python解释器
40.Python3基于Scapy实现DDos
41.Python实现密码强度检测器
42.使用Python实现深度神经网络
43.Python实现从excel读取数据并绘制成精美图像
44.人机对战初体验:Python基于Pygame实现四子棋游戏
45.Python3实现可控制肉鸡的反向Shell
46.Python打造漏洞扫描器
47.Python应用马尔可夫链算法实现随机文本生成
48.数独游戏的Python实现与破解
49.使用Python定制词云
50.Python开发简单计算器
51.Python实现FTP弱口令扫描器
52.Python实现Huffman编码解压缩文件
53.Python实现Zip文件的暴力破解
54.Python3智能裁切图片
55.Python实现网站模拟登陆
56.给Python3爬虫做一个界面.妹子图网实战
57.Python3实现图片转彩色字符
58.自联想器的Python实现
59.Python实现简单滤镜
60.Flask实现简单聊天室
61.基于PyQt5实现地图中定位相片拍摄位置
62.Python实现模板引擎
63.Python实现遗传算法求解n-queens问题
64.Python3实现命令行动态进度条
65.Python获取挂号信息并邮件通知
66.Python实现iava web项目远端自动化更新部署
67.使用Python3编写Github自动周报生成器
68.使用Python生成分形图片
69.Python实现Redis异步客户端
70.Python实现中文错别字 亮系统
71.Python图片转字符画
72.200行Python代码实现2048
73.[Python3实现火车票查询工具
74.高德API+Python解决租房问题
75.Python3图片识别
76.Python破解验证码
77.Python实现简单的web服务器
78.Ipygame开发打飞机游戏
79 Django搭建简易博客
80.Python基于共现提取《釜山行》人物关系
81.基于scrapy爬虫的天气数据采集(python)
82.Flask开发轻博客
83.Python3图片隐写术
84.Python实现简易ShelJ
85.使用Python解数学方程
86.Pyt实现简易浏览器
87.神经网络实现手写字符识别系统
88.Python实现简单画板
89.Python实现3D建模工具
90.NBA常规寒结果预测-利用Python进行比赛数据
91.神经网络实现人脸识别任务
92.Python文本解析器
93.Python3&;amp;OpenCv视频转字符动画
94.Python3实现淘女郎照片爬虫
95.Python3实现简单的FTP认证服务器
96.基于Flask与MySQL实现番剧推荐系统
97.Python实现端口扫描器
98.使用Python3编写系列实用脚本
99.Python实现康威生命游戏
100.Python实现中文错别宇高亮系统
101.Python自动获取小说工具
102.python自动获取酷狗音乐工具
103.python自动获取海量IP工具
104.Python自动化开发-制作名片卡
105.Python自动化开发-微信统计
106.Python自动化开发-批量发邮件通知
107.Python自动化开发-考勒处理
108.Python双色球系统
源码分享方式:萍伦区~流言即可