Python开发中爬虫使用代理proxy抓取网页的方法示例


Posted in Python onSeptember 26, 2017

本文实例讲述了Python开发中爬虫使用代理proxy抓取网页的方法。分享给大家供大家参考,具体如下:

代理类型(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 模块 使用代理

requests使用代理要比urllib简单多了…这里以单次代理为例. 多次的话可以用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 相关文章推荐
Python在信息学竞赛中的运用及Python的基本用法(详解)
Aug 15 Python
python实现整数的二进制循环移位
Mar 08 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
Apr 11 Python
利用PyCharm Profile分析异步爬虫效率详解
May 08 Python
详解Python3 对象组合zip()和回退方式*zip
May 15 Python
python顺序执行多个py文件的方法
Jun 29 Python
对django 模型 unique together的示例讲解
Aug 06 Python
Python+Selenium+phantomjs实现网页模拟登录和截图功能(windows环境)
Dec 11 Python
Python3运算符常见用法分析
Feb 14 Python
pandas DataFrame 数据选取,修改,切片的实现
Apr 24 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
Aug 26 Python
详解python 条件语句和while循环的实例代码
Dec 28 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
Sep 26 #Python
python九九乘法表的实例
Sep 26 #Python
Python实现简单的HttpServer服务器示例
Sep 25 #Python
Python使用正则表达式过滤或替换HTML标签的方法详解
Sep 25 #Python
Python实现的破解字符串找茬游戏算法示例
Sep 25 #Python
Python实现破解猜数游戏算法示例
Sep 25 #Python
Python基于identicon库创建类似Github上用的头像功能
Sep 25 #Python
You might like
SONY ICF-F10中波修复记
2021/03/02 无线电
PHP连接Access数据库的方法小结
2013/06/20 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
2013/07/02 PHP
php使用memcoder将视频转成mp4格式的方法
2015/03/12 PHP
php实现简单的语法高亮函数实例分析
2015/04/27 PHP
Codeigniter控制器controller继承问题实例分析
2016/01/19 PHP
Eclipse PHPEclipse 配置的具体步骤
2017/08/08 PHP
php和html的区别点详细总结
2019/09/24 PHP
基于jQuery的ajax功能实现web service的json转化
2009/08/29 Javascript
JS继承 笔记
2011/07/13 Javascript
js网页实时倒计时精确到秒级
2014/02/10 Javascript
深入理解Vuex 模块化(module)
2017/09/26 Javascript
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
2018/01/25 Javascript
搭建element-ui的Vue前端工程操作实例
2018/02/23 Javascript
vue awesome swiper异步加载数据出现的bug问题
2018/07/03 Javascript
vue动态渲染svg、添加点击事件的实现
2020/03/13 Javascript
json_decode 索引为数字时自动排序问题解决方法
2020/03/28 Javascript
[16:56]heroes英雄教学 司夜刺客
2014/09/18 DOTA
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
[03:54]Ehome出征西雅图 回顾2016国际邀请赛晋级之路
2016/08/02 DOTA
Python使用SocketServer模块编写基本服务器程序的教程
2016/07/12 Python
python中解析json格式文件的方法示例
2017/05/03 Python
python处理两种分隔符的数据集方法
2018/12/12 Python
Python3使用TCP编写一个简易的文件下载器功能
2019/05/08 Python
Python 一键获取百度网盘提取码的方法
2019/08/01 Python
节日快乐! Python画一棵圣诞树送给你
2019/12/24 Python
Expedia泰国:预订机票、酒店和旅游包(航班+酒店)
2016/09/27 全球购物
Notino意大利:购买香水和化妆品
2018/11/14 全球购物
Shell编程面试题
2016/05/29 面试题
医务人员竞聘职务自我评价分享
2013/11/08 职场文书
十八届三中全会感言
2014/03/10 职场文书
竞选班干部演讲稿
2014/04/24 职场文书
外贸业务员岗位职责
2015/02/13 职场文书
Nginx使用Lua模块实现WAF的原理解析
2021/09/04 Servers
Win11运行育碧游戏总是崩溃怎么办 win11玩育碧游戏出现性能崩溃的解决办法
2022/04/06 数码科技
Linux安装Docker详细教程
2022/07/07 Servers