python爬虫实例代码

python
import requests from bs4 import BeautifulSoup # 定义目标网站的URL url = 'https://example.com' # 发送HTTP请求获取页面内容 response = requests.get(url) # 检查是否成功获取页面内容 if response.status_code == 200: # 使用BeautifulSoup解析页面内容 soup = BeautifulSoup(response.text, 'html.parser') # 找到页面上的特定元素,例如标题 title = soup.find('title') if title: # 提取标题文本并打印 print("网站标题:", title.text) else: print("未找到标题") # 进一步解析页面内容,提取其他信息 # 例如,找到所有链接 links = soup.find_all('a') for link in links: # 打印链接文本和URL print("链接文本:", link.text) print("链接URL:", link.get('href')) else: print("无法访问网站") # 记得处理异常和错误,例如连接超时、页面不存在等情况

使用User-Agent头部: 有些网站会根据User-Agent头部来区分爬虫和普通用户。你可以设置一个合理的User-Agent来模拟浏览器行为,以避免被封禁。

python
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.3'} response = requests.get(url, headers=headers)

限制请求频率: 避免在短时间内发送大量请求,这可能会引起目标网站的反爬虫机制。你可以使用time.sleep来添加延迟,或者使用异步爬虫库来控制请求频率。

python
import time time.sleep(2) # 在每次请求之间休眠2秒

处理异常: 在爬虫过程中,经常会出现各种异常,如连接超时、页面不存在等。确保你的代码能够处理这些异常情况,以防止爬虫中断。

python
try: response = requests.get(url) response.raise_for_status() # 如果响应状态码不是200,会抛出异常 except requests.exceptions.RequestException as e: print("请求发生异常:", e)

使用合适的解析库: BeautifulSoup是一个流行的HTML解析库,但在处理JavaScript生成的页面内容时可能会有限制。如果需要爬取动态加载的内容,考虑使用Selenium等工具。

数据存储: 爬取的数据需要存储在适当的地方,可以选择将数据保存到文本文件、数据库或其他数据存储系统中。

合法性和道德性: 确保你的爬虫行为合法且道德。

监控和日志记录: 定期监控你的爬虫活动,记录请求和响应信息,以便在出现问题时进行故障排查。

标签