15分钟学 Python 第38天 :Python 爬虫入门(四)

[复制链接]
发表于 2026-1-13 06:02:40 | 显示全部楼层 |阅读模式
Day38 : Python爬虫非常处理惩罚与反爬虫机制

章节1:非常处理惩罚的告急性

爬虫开辟过程中,网络哀求和数据剖析常常会遭遇各种非常。准确的非常处理惩罚可以进步步伐的稳固性,制止瓦解,并资助开辟者快速定位题目。
章节2:常见的非常范例

在爬虫开辟中,重要有以下几种非常:
非常范例形貌requests.exceptions.RequestException基类非常,用于处理惩罚全部哀求非常requests.exceptions.HTTPError体现HTTP错误,比方404或500错误requests.exceptions.ConnectionError体现网络毗连错误requests.exceptions.Timeout哀求超时错误requests.exceptions.TooManyRedirects哀求重定向过多章节3:非常处理惩罚示例

下面的代码展示了如安在发送哀求时举行非常处理惩罚:
  1. import requests
  2. def fetch_url(url):
  3.     try:
  4.         response = requests.get(url)
  5.         response.raise_for_status()  # 如果403或404都会引发异常
  6.         return response.text
  7.     except requests.exceptions.HTTPError as http_err:
  8.         print(f"HTTP错误: {http_err}")
  9.     except requests.exceptions.ConnectionError:
  10.         print("连接错误,请检查网络连接。")
  11.     except requests.exceptions.Timeout:
  12.         print("请求超时,请重试。")
  13.     except requests.exceptions.RequestException as e:
  14.         print(f"请求时发生错误: {e}")
  15.     return None
  16. url = 'http://example.com'
  17. data = fetch_url(url)
  18. if data:
  19.     print(data)
复制代码
章节4:反爬虫机制概述

反爬虫机制是网站采取的一系列技能本事,用以制止或限定爬虫的访问。常见的反爬虫计谋包罗:
反爬虫机制形貌用户署理查抄查抄哀求的User-Agent是否正常IP限定限定特定IP所在的哀求频率验证码在哀求中插入验证码以确认用户身份Cookie验证利用Cookies验证用户身份动态内容加载利用JavaScript动态加载部分内容,爬虫无法直接获取章节5:处理惩罚反爬虫机制

为了应对反爬虫机制,爬虫开辟者可以采取一些计谋:
5.1 设置用户署理(User-Agent)

伪装成欣赏器发送哀求:
  1. headers = {
  2.     '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'
  3. }
  4. response = requests.get(url, headers=headers)
复制代码
5.2 利用署理

通过署理服务器绕过IP限定:
  1. proxies = {
  2.     'http': 'http://your_proxy:port',
  3.     'https': 'http://your_proxy:port',
  4. }
  5. response = requests.get(url, proxies=proxies)
复制代码
5.3 添加延长

限定哀求频率,以制止被封:
  1. import time
  2. for i in range(5):
  3.     response = requests.get(url)
  4.     print(response.status_code)
  5.     time.sleep(2)  # 每次请求间隔2秒
复制代码
章节6:完备示例 - 反爬虫处理惩罚

以下是一个示例步伐,展示了怎样应对反爬虫机制和举行非常处理惩罚。
  1. import requests
  2. import time
  3. def fetch_url(url):
  4.     headers = {
  5.         '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'
  6.     }
  7.     proxies = {
  8.         'http': 'http://your_proxy:port',
  9.         'https': 'http://your_proxy:port',
  10.     }
  11.     try:
  12.         response = requests.get(url, headers=headers, proxies=proxies)
  13.         response.raise_for_status()
  14.         return response.text
  15.     except requests.exceptions.HTTPError as http_err:
  16.         print(f"HTTP错误: {http_err}")
  17.     except requests.exceptions.ConnectionError:
  18.         print("连接错误,请检查网络连接。")
  19.     except requests.exceptions.Timeout:
  20.         print("请求超时,请重试。")
  21.     except requests.exceptions.RequestException as e:
  22.         print(f"请求时发生错误: {e}")
  23. url = 'http://example.com'
  24. for i in range(5):
  25.     data = fetch_url(url)
  26.     if data:
  27.         print(f"请求成功: {len(data)} 字节")
  28.     time.sleep(2)  # 每次请求间隔2秒
复制代码
章节7:流量控制与限频计谋

7.1 哀求频率控制
为了制止触发反爬虫机制,可以设置哀求频率:

  • 随机延长:利用随机数天生哀求隔断。
  1. import random
  2. for i in range(5):
  3.     delay = random.uniform(1, 5)  # 随机1到5秒之间
  4.     time.sleep(delay)
  5.     data = fetch_url(url)
复制代码
章节8:非常和反爬虫的调试工具

工具形貌Fiddler网络调试署理,查察HTTP哀求和相应头信息PostmanAPI开辟工具,测试HTTP哀求Selenium处理惩罚动态网页抓取,可以完备主动化欣赏器举动章节9:总结

在本节中,我们具体探究了Python爬虫中的非常处理惩罚与反爬虫机制。学习怎样有用处理惩罚各种非常,并采取公道的反爬虫计谋,以增强爬虫步伐的稳固性和抗压本事。
通过把握这些技能,您将更加自负地编写高效、妥当的爬虫,抓取互联网中的各种数据,资助实现数据分析和应用开辟。


怎么样本日的内容还满意吗?再次感谢观众老爷的观看。
末了,祝您早日实现财政自由,还请给个赞,谢谢!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表