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线程中对join方法的运用的教程
Apr 09 Python
python采用django框架实现支付宝即时到帐接口
May 17 Python
python中星号变量的几种特殊用法
Sep 07 Python
在django中实现页面倒数几秒后自动跳转的例子
Aug 16 Python
python打印直角三角形与等腰三角形实例代码
Oct 20 Python
Python3打包exe代码2种方法实例解析
Feb 17 Python
解决Django中checkbox复选框的传值问题
Mar 31 Python
Python如何操作office实现自动化及win32com.client的运用
Apr 01 Python
Python threading模块condition原理及运行流程详解
Oct 05 Python
Python如何telnet到网络设备
Feb 18 Python
python使用pymysql模块操作MySQL
Jun 16 Python
OpenCV实现常见的四种图像几何变换
Apr 01 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
PHP4 与 MySQL 数据库操作函数详解
2006/10/09 PHP
PHP计划任务、定时执行任务的实现代码
2011/04/23 PHP
php继承的一个应用
2011/09/06 PHP
浅析php静态方法与非静态方法的用法区别
2016/05/17 PHP
Laravel基础-关于引入公共文件的两种方式
2019/10/18 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
2020/02/11 PHP
onkeydown事件解决按回车键直接提交数据的需求
2013/04/11 Javascript
Javascript call和apply区别及使用方法
2013/11/14 Javascript
用js控制组织结构图可以任意拖拽到指定位置
2014/01/17 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
2014/06/14 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
2015/05/07 Javascript
实例讲解jquery与json的结合
2016/01/07 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
2016/01/21 Javascript
AngularJS入门教程之Cookies读写操作示例
2016/11/02 Javascript
Angular路由简单学习
2016/12/26 Javascript
微信小程序之数据双向绑定与数据操作
2017/05/12 Javascript
强大的 Angular 表单验证功能详细介绍
2017/05/23 Javascript
MvcPager分页控件 适用于Bootstrap
2017/06/03 Javascript
jquery实现左右轮播切换效果
2018/01/01 jQuery
微信小程序实现滑动翻页效果(完整代码)
2019/12/06 Javascript
jquery实现垂直手风琴菜单
2020/03/04 jQuery
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
2017/06/20 Python
Python 中 Virtualenv 和 pip 的简单用法详解
2017/08/18 Python
用Python写脚本,实现完全备份和增量备份的示例
2018/04/29 Python
python爬虫超时的处理的实例
2018/12/19 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
2019/05/31 Python
基于python3监控服务器状态进行邮件报警
2019/10/19 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
2020/01/09 Python
使用python-Jenkins批量创建及修改jobs操作
2020/05/12 Python
解决pytorch下出现multi-target not supported at的一种可能原因
2021/02/06 Python
Rosetta Stone官方网站:语言学习
2019/01/05 全球购物
如何写一个自定义标签
2012/12/28 面试题
当x.equals(y)等于true时,x.hashCode()与y.hashCode()可以不相等,这句话对不对
2015/05/02 面试题
测绘工程本科生求职信
2013/10/10 职场文书
科室工作的个人自我评价
2013/10/30 职场文书
授权委托书(法人单位用)
2014/09/29 职场文书