Python爬虫使用代理Proxy抓取网页的方法示例

夏知夏
夏知夏
发布时间:2026-10-13 | 3人浏览过
原创

本文详解Python爬虫中代理Proxy的配置方法,涵盖urllib和requests两大模块。通过构建ProxyHandler、设置环境变量及Basic Auth语法,实现透明、匿名及高匿代理的灵活调用,助力解决复杂抓取场景。

本文详细介绍在Python开发过程中,爬虫程序如何利用代理(proxy)来抓取网页内容。该方案旨在为读者提供实用的参考与借鉴。

常见的代理类型包括透明代理、匿名代理、混淆代理以及高匿代理。本文将分享Python爬虫使用代理的相关技巧,并提供一个代理池类,以便读者应对工作中遇到的各种复杂抓取需求。

利用urllib模块配置代理

使用urllib或urllib2模块配置代理相对繁琐,操作步骤如下:首先需构建一个ProxyHandler类,接着利用该类创建一个用于打开网页的opener对象,最后在request中安装该opener。

代理地址的标准格式为"http://127.0.0.1:80"。若代理需要身份验证,则格式应为"http://user:password@127.0.0.1:80"。

proxy="http://127.0.0.1:80"
# 创建一个ProxyHandler对象
proxy_support=urllib.request.ProxyHandler({'http':proxy})
# 创建一个opener对象
opener = urllib.request.build_opener(proxy_support)
# 给request装载opener
urllib.request.install_opener(opener)
# 打开一个url
r = urllib.request.urlopen('http://youtube.com',timeout = 120)

利用requests模块配置代理

相较于urllib,使用requests模块配置代理更为简便。此处以单次代理请求为例,若需进行多次代理请求,可借助session对象来构建。

若需指定代理,只需在任意请求方法中传入proxies参数即可实现配置:

import requests
proxies = {
 "http": "http://127.0.0.1:3128",
 "https": "http://127.0.0.1:2080",
}
r=requests.get("http://youtube.com", proxies=proxies)
print r.text

此外,还可以通过设置环境变量HTTP_PROXY和HTTPS_PROXY来全局配置代理。

export HTTP_PROXY="http://127.0.0.1:3128"
export HTTPS_PROXY="http://127.0.0.1:2080"
python
>>> import requests
>>> r=requests.get("http://youtube.com")
>>> print r.text

若代理服务器要求使用HTTP Basic Auth进行身份验证,可遵循http://user:password@host/的语法格式进行配置:

proxies = {
  "http": "http://user:pass@127.0.0.1:3309/",
}

在Python中使用代理十分便捷,但核心关键在于寻找网络稳定且可靠的代理服务。

如需了解更多Python相关知识,可查阅本站系列专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》。

希望本文所述内容能对大家的Python程序设计工作有所帮助。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表