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自动登录126邮箱的方法
Jul 10 Python
Python设计模式之代理模式简单示例
Jan 09 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
Feb 11 Python
使用python实现语音文件的特征提取方法
Jan 09 Python
详解python中@的用法
Mar 27 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
May 07 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
Jan 03 Python
记一次pyinstaller打包pygame项目为exe的过程(带图片)
Mar 02 Python
简单介绍一下pyinstaller打包以及安全性的实现
Jun 02 Python
为什么相对PHP黑python的更少
Jun 21 Python
Python日志打印里logging.getLogger源码分析详解
Jan 17 Python
如何使用Python提取Chrome浏览器保存的密码
Jun 09 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
xajax写的留言本
2006/11/25 PHP
php获取随机数组列表的方法
2014/11/13 PHP
PDO预处理语句PDOStatement对象使用总结
2014/11/20 PHP
thinkPHP中分页用法实例分析
2015/12/26 PHP
Composer设置忽略版本匹配的方法
2016/04/27 PHP
利用javascript/jquery对上传文件格式过滤的方法
2009/07/25 Javascript
javascript 在firebug调试时用console.log的方法
2012/05/10 Javascript
JS循环遍历JSON数据的方法
2014/07/08 Javascript
jquery插件unobtrusive实现片段式加载
2015/06/15 Javascript
Bootstrap每天必学之栅格系统(布局)
2015/11/25 Javascript
JS+canvas实现的五子棋游戏【人机大战版】
2017/07/19 Javascript
react native与webview通信的示例代码
2017/09/25 Javascript
JavaScript程序设计高级算法之动态规划实例分析
2017/11/24 Javascript
安装Node.js并启动本地服务的操作教程
2018/05/12 Javascript
vue自定义键盘信息、监听数据变化的方法示例【基于vm.$watch】
2019/03/16 Javascript
详解JS浏览器事件循环机制
2019/03/27 Javascript
JS实现数组删除指定元素功能示例
2019/06/05 Javascript
在layui下对元素进行事件绑定的实例
2019/09/06 Javascript
javascript设计模式之装饰者模式
2020/01/30 Javascript
vue 验证两次输入的密码是否一致的方法示例
2020/09/29 Javascript
[10:21]2018DOTA2国际邀请赛寻真——Winstrike
2018/08/11 DOTA
Python中针对函数处理的特殊方法
2014/03/06 Python
举例讲解Python编程中对线程锁的使用
2016/07/12 Python
关于Python的一些学习总结
2018/05/25 Python
python实现ID3决策树算法
2018/08/29 Python
python反编译学习之字节码详解
2019/05/19 Python
解决Django layui {{}}冲突的问题
2019/08/29 Python
python实现单机五子棋
2020/08/28 Python
Django中使用Celery的方法步骤
2020/12/07 Python
使用bandit对目标python代码进行安全函数扫描的案例分析
2021/01/27 Python
SteelSeries赛睿官网:游戏外设和配件的领先制造商(耳机、键盘、鼠标和鼠标垫)
2018/06/17 全球购物
体育学院毕业生自荐信
2013/11/03 职场文书
外贸业务员工作职责
2014/01/06 职场文书
公积金具结保证书
2015/05/11 职场文书
python实现的web监控系统
2021/04/27 Python
Centos环境下Postgresql 安装配置及环境变量配置技巧
2021/05/18 PostgreSQL