Python3 网络爬虫基础教程与实战示例
随着互联网的发展,网络爬虫已成为自动化数据采集的重要技能。Python 3 凭借其简洁的语法和丰富的第三方库,成为编写网络爬虫的首选语言之一。本文将详细介绍如何使用 Python 3 结合 Requests 和 BeautifulSoup 库实现网页数据的抓取、解析与存储,并以豆瓣电影 Top250 页面为例进行实战演示。
一、明确爬取目标
在编写爬虫之前,必须明确爬取的目标网站和需要提取的数据类型。合理的规划有助于提高开发效率并确保合规性。本文将以豆瓣电影 Top250 榜单为例,目标是爬取每部电影的名称、评分以及评价人数等关键信息。
二、环境准备与依赖安装
Python 生态中有许多库可用于网络爬虫开发,其中最常用的是 requests(用于发送 HTTP 请求)、beautifulsoup4(用于解析 HTML)和 lxml(作为解析器后端)。
在开始之前,请确保已安装 Python 3 环境,并使用 pip 安装以下依赖库:
pip install requests beautifulsoup4 lxml
三、发送 HTTP 请求
使用 requests 库可以方便地获取网页内容。为了模拟浏览器行为并避免被服务器拦截,建议在请求头中添加 User-Agent。
import requests
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/91.0.4472.124 Safari/537.36'
}
try:
response = requests.get(url, headers=headers, timeout=10)
# 检查响应状态码
if response.status_code == 200:
html = response.text
# 设置正确的编码,防止中文乱码
response.encoding = response.apparent_encoding
else:
print(f"请求失败,状态码:{response.status_code}")
except Exception as e:
print(f"发生错误:{e}")
这段代码将豆瓣电影 Top250 页面的 HTML 源码获取到 html 变量中,并处理了基本的异常情况和编码问题。
四、解析网页内容
获取到 HTML 源码后,需要使用 BeautifulSoup 对其进行结构化解析。BeautifulSoup 提供了多种方法来查找文档树中的特定元素。
首先导入必要的库并创建 Soup 对象:
from bs4 import BeautifulSoup
lxml
soup = BeautifulSoup(html, )


