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常用模块用法分析
Sep 08 Python
使用Python对MySQL数据操作
Apr 06 Python
使用Python从零开始撸一个区块链
Mar 14 Python
python 对dataframe下面的值进行大规模赋值方法
Jun 09 Python
Django添加feeds功能的示例
Aug 07 Python
Python如何实现转换URL详解
Jul 02 Python
python利用dlib获取人脸的68个landmark
Nov 27 Python
Python调用.NET库的方法步骤
Dec 27 Python
将tensorflow模型打包成PB文件及PB文件读取方式
Jan 23 Python
浅谈TensorFlow之稀疏张量表示
Jun 30 Python
Python关于拓扑排序知识点讲解
Jan 04 Python
用Python实现屏幕截图详解
Jan 22 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
Ajax+PHP 边学边练之四 表单
2009/11/27 PHP
JSON在PHP中的应用介绍
2012/09/08 PHP
PHP-Fcgi下PHP的执行时间设置方法
2013/08/02 PHP
PHP中提问频率最高的11个面试题和答案
2014/09/02 PHP
基于jquery的DIV随滚动条滚动而滚动的代码
2012/07/20 Javascript
JS解析json数据并将json字符串转化为数组的实现方法
2012/12/25 Javascript
json格式的时间显示为正常年月日的方法
2013/09/08 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
jQuery 获取兄弟元素的几种不错方法
2014/05/23 Javascript
JavaScript中的Web worker多线程API研究
2014/12/06 Javascript
JavaScript如何禁止Backspace键
2015/12/02 Javascript
JavaScript高级程序设计(第三版)学习笔记1~5章
2016/03/11 Javascript
针对JavaScript中this指向的简单理解
2016/08/26 Javascript
Angular.js自定义指令学习笔记实例
2017/02/24 Javascript
vue父子组件的数据传递示例
2017/03/07 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
2017/07/28 Javascript
Vue2.0 vue-source jsonp 跨域请求
2017/08/04 Javascript
Vue代码分割懒加载的实现方法
2017/11/23 Javascript
electron demo项目npm install安装失败的解决方法
2018/02/06 Javascript
vue中阻止click事件冒泡,防止触发另一个事件的方法
2018/02/08 Javascript
JavaScript生成指定范围随机数和随机序列的方法
2018/05/05 Javascript
基于jQuery ztree实现表格风格的树状结构
2018/08/31 jQuery
[45:06]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第二场 11.28
2020/12/02 DOTA
Django自定义用户登录认证示例代码
2019/06/30 Python
Python循环实现n的全排列功能
2019/09/16 Python
Python 输出详细的异常信息(traceback)方式
2020/04/08 Python
简单的Python人脸识别系统
2020/07/14 Python
美国受欢迎的眼影品牌:BH Cosmetics
2016/10/25 全球购物
外包公司软件测试工程师
2014/11/01 面试题
网站开发实习生的自我评价
2013/12/11 职场文书
委托公证书
2014/04/08 职场文书
代理人委托书
2014/08/01 职场文书
授权委托书格式范文
2014/08/02 职场文书
关于运动会的广播稿(10篇)
2014/09/12 职场文书
2015年新教师个人工作总结
2015/10/14 职场文书
高中英语教学反思范文
2016/03/02 职场文书