找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 351|回复: 0

网络爬虫请求头中的Referer和User-Agent与代理IP的配合使用

[复制链接]

93

主题

6

回帖

113

积分

初中生

热心值
2
IT币
595
贡献值
1
QQ
发表于 2023-8-3 16:47:14 | 显示全部楼层 |阅读模式
在进行网络爬虫开发时,我们经常需要模拟浏览器发送请求来获取网页数据。然而,有些网站为了保护自身的安全和隐私,会对请求进行限制和过滤。为了绕过这些限制,我们可以使用代理IP来隐藏真实的请求来源。但是,仅仅使用代理IP可能不足以达到我们的目的,因为一些网站会根据请求头中的Referer和User-Agent信息来判断请求的合法性。因此,本文将探讨网络爬虫请求头中的Referer和User-Agent与代理IP的配合使用的技巧和注意事项。
  • [color=var(--primary-dark)]Referer的作用: Referer是HTTP请求头中的一个字段,用于指示请求的来源页面。一些网站会根据Referer来判断请求的合法性,如果Referer为空或者不符合预期的值,可能会拒绝请求或返回错误的数据。
  • [color=var(--primary-dark)]User-Agent的作用: User-Agent也是HTTP请求头中的一个字段,用于标识发送请求的客户端信息,通常是浏览器的名称和版本号。
常见格式: User-Agent的格式通常为"产品名称/产品版本号",例如:
  • [color=var(--primary-dark)]Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36
  • [color=var(--primary-dark)]Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.192 Safari/537.36
在实际开发中,我们可能会遇到一些问题,例如请求被拒绝、返回错误的数据等。这些问题可能与请求头中的Referer和User-Agent有关。为了解决这些问题,我们可以按照以下步骤进行问题排查:
  • [color=var(--primary-dark)]检查请求头中的Referer和User-Agent是否正确设置:使用浏览器访问目标网站,查看浏览器的请求头信息,确保Referer和User-Agent与浏览器请求一致。
    1. import requests

    2. headers = {
    3.     'Referer': 'https://www.example.com'
    4. }

    5. response = requests.get('https://www.target-website.com', headers=headers)
    复制代码
    检查代理IP是否正常工作:使用代理IP发送请求,查看返回的数据是否正确。如果返回的数据与预期不符,可能是代理IP被网站识别并拒绝了请求。
    1. import requests

    2. # 通过亿牛云爬虫代理来测试
    3. proxyHost = 't.16yun.cn'
    4. proxyPort = 30001

    5. # 设置请求头
    6. headers = {
    7.     'Referer': 'https://www.example.com',
    8.     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36'
    9. }

    10. # 设置代理
    11. proxies = {
    12.     'http': f'http://{proxyHost}:{proxyPort}',
    13.     'https': f'https://{proxyHost}:{proxyPort}'
    14. }

    15. # 发送请求
    16. response = requests.get('https://www.example.com', headers=headers, proxies=proxies)

    17. # 处理响应
    18. print(response.text)
    复制代码

  • [color=var(--primary-dark)]检查Referer和User-Agent的值是否被网站限制:有些网站会对Referer和User-Agent的值进行限制,例如只接受特定的Referer或User-Agent。如果您的请求被拒绝或返回错误的数据,因为可能是您设置的Referer或User-代理不符合网站要求。
    1. import requests

    2. # 通过亿牛云爬虫代理来测试
    3. proxyHost = 't.16yun.cn'
    4. proxyPort = 30001

    5. # 设置请求头
    6. headers = {
    7.     'Referer': 'https://www.example.com',
    8.     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36'
    9. }

    10. # 设置代理
    11. proxies = {
    12.     'http': f'http://{proxyHost}:{proxyPort}',
    13.     'https': f'https://{proxyHost}:{proxyPort}'
    14. }

    15. # 发送请求
    16. response = requests.get('https://www.example.com', headers=headers, proxies=proxies)

    17. # 处理响应
    18. print(response.text)
    复制代码





ITbang.Net是一个IT教程分享社区!

寻找论坛资源请善用论坛搜索功能,这样会为你节约不少学习时间;

论坛资源如有过期链接失效等,请到教程反馈区发帖反馈,我们会为您良好的行为点赞加分!

回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明:
IT帮论坛所发布的一切视频资源、工具软件和网络技术相关的文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该资源,请支持正版软件,购买注册,得到更好的正版服务。

Mail To:Service@ITbang.Net

QQ|Archiver|手机版|小黑屋|IT帮社区 ( 冀ICP备19002104号-2 )

GMT+8, 2024-7-27 19:13 , Processed in 0.061762 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表