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的项目。你能够把爬虫技术延伸至更复杂的应用场景,例如:
在实际应用的时候,要记得遵守法律法规,也要遵守网站的爬虫协议,还要合理使用网络爬虫技术!