【爬虫案例】2025最新python爬虫案例!5个经典案例!(完整代码)


案例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的面部特征交换)

  1. 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双色球系统

源码分享方式:萍伦区~流言即可