Python中构建爬虫的工具和库及豆瓣电影排行榜爬虫案例

在 Python 中,我们可以使用以下工具和库来构建爬虫:

Python中构建爬虫的工具和库及豆瓣电影排行榜爬虫案例

2.1 requests

requests是一个强大的HTTP库,它可用来发送网络请求,还能获取网页内容。

安装:

pip install requests

示例:

import requests 
url = "https://example.com" 
response = requests.get(url) 
print(response.text) # 打印网页内容

2.2 BeautifulSoup

BeautifulSoup是一个库,它可用于解析HTML和XML,还能从网页中提取数据 。

安装:

pip install beautifulsoup4

示例:

from bs4 import BeautifulSoup
html = "

Hello, World!

" soup等于使用"html.parser"对html进行解析后得到的BeautifulSoup对象 执行打印操作,打印出soup.h1.text的内容,其输出结果为 "Hello, World!"

2.3 pandas

pandas是一个库,它可用于数据处理,还能用于数据分析,它适合把爬取的数据保存到CSV,它也适合把爬取的数据保存到Excel。

安装:

pip install pandas

示例:

import pandas as pd
数据等于,一个包含标题和链接的字典,标题的值为示例,链接的值为https://example.com 。
df = pd.DataFrame(data)
将df的数据写入名为output.csv的文件中,不写入索引列 。

3. 爬虫案例:抓取豆瓣电影排行榜

下面我们将构建一个爬虫,从豆瓣电影的网页抓取电影排行榜。

3.1 准备工作

目标网址:

我们将抓取以下信息:

3.2 代码实现

import requests
from bs4 import BeautifulSoup
import pandas as pd
# 爬取一个页面的数据
def scrape_page(url):
请求头设置为,用户代理为,Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36
发出请求,获取响应,使用requests库的get方法,向指定的url发送请求,同时带上headers参数 。
将响应文本,使用html解析器,创建一个BeautifulSoup对象,并赋值给变量soup
    
    movies = []
对于在名为 soup 的对象中查找的所有具有 class 属性值为 "item" 的 div 标签,将每个标签赋值给 item 变量,进行后续操作。
title等于,item查找,标签名为span,class属性为title的元素,获取其文本内容 。
rating获取,通过item查找,查找标签为span,class属性值为rating_num的元素,获取其文本内容
如果找到具有“inq”类的“span”元素,那么将其文本内容赋值给“quote”,否则将“N/A”赋值给“quote” 。
将一个包含电影标题、评分和引用语的字典添加到列表movies中,该字典的键分别为“Title”、“Rating”、“Quote”,对应的值分别为title、rating、quote 。
    
    return movies
# 主程序:爬取多页
def main():
基础网址是“https://movie.douban.com/top250?start={}”
    all_movies = []
    
对于 i,其取值范围是从 0 到 250,步长为 25,每页展示 25 部电影。
        url = base_url.format(i)
        print(f"Scraping: {url}")
        movies = scrape_page(url)
        all_movies.extend(movies)
    
    # 保存为 CSV 文件
    df = pd.DataFrame(all_movies)
将数据框 df 保存为名为 douban_top250.csv 的文件,不保存索引 。
打印,“爬取完成!数据已保存到douban_top250.csv”
if __name__ == "__main__":
    main()

3.3 代码解析

设置请求头: 模拟浏览器访问,避免被反爬机制屏蔽。

BeautifulSoup进行内容提取时,会使用find和find_all来定位HTML标签,进而提取标题,提取评分,提取引言。

循环抓取多页: 构造分页 URL,逐页爬取。

使用pandas存储数据,将其存储为CSV文件。

4. 运行与结果

运行程序之后,会生成douban_top250.csv文件,其内容如下:

5. 注意事项 5.1 遵守爬虫的礼仪

合理设置延迟,在抓取页面的时候加入适当的延时,以此避免对服务器造成压力。

检查robots.txt,访问目标网站,查看允许抓取的内容。

请求头伪装: 使用 User-Agent 模拟浏览器访问。

5.2 反爬机制应对

如果遇到反爬机制,可以尝试:

6. 总结与扩展

通过阅读本文,我们掌握了运用Python构建基本爬虫的流程,还完成了一个抓取豆瓣电影Top250的项目。你能够把爬虫技术延伸至更复杂的应用场景,例如:

在实际应用的时候,要记得遵守法律法规,也要遵守网站的爬虫协议,还要合理使用网络爬虫技术!

你可能想看:
« 上一篇
下一篇 »

相关推荐

FreeBasic:强大免费开源的64位basic编译器及应用优势

2025年05月10日

82阅读

脊柱侧弯矫正方法大盘点:运动康复、支具矫正等多种方式

2025年05月09日

88阅读

如何在winForm标题栏去掉标题文字且任务栏图标正常显示

2025年05月09日

86阅读

十一黄金周促销广告词大全,国庆购物狂欢等你来

2025年05月09日

78阅读

关闭快速编辑模式及插入模式,设置控制台指定文字颜色举例

2025年05月09日

63阅读

黄金搭档低糖高钙饮品包装及成分功效全解析,适合人群要知晓

2025年05月09日

91阅读