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计数排序和基数排序算法实例
Apr 25 Python
pygame学习笔记(5):游戏精灵
Apr 15 Python
Python基于checksum计算文件是否相同的方法
Jul 09 Python
PYTHON基础-时间日期处理小结
May 05 Python
用python3 返回鼠标位置的实现方法(带界面)
Jul 05 Python
Python Django基础二之URL路由系统
Jul 18 Python
PyCharm使用之配置SSH Interpreter的方法步骤
Dec 26 Python
TensorFlow实现指数衰减学习率的方法
Feb 05 Python
python模拟斗地主发牌
Apr 22 Python
简单了解python关键字global nonlocal区别
Sep 21 Python
Python 如何安装Selenium
May 06 Python
python区块链持久化和命令行接口实现简版
May 25 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
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
PHP常见字符串操作函数与用法总结
2019/03/04 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
2019/08/05 PHP
jQuery 位置插件
2008/12/25 Javascript
js操作时间(年-月-日 时-分-秒 星期几)
2010/06/20 Javascript
15个款优秀的 jQuery 图片特效插件推荐
2011/11/21 Javascript
将nodejs打包工具整合到鼠标右键的方法
2013/05/11 NodeJs
JQuery实现防止退格键返回的方法
2015/02/12 Javascript
JavaScript检测弹出窗口是否已经关闭的方法
2015/03/24 Javascript
js实现精美的图片跟随鼠标效果实例
2015/05/16 Javascript
js表单中选择框值的获取及表单的序列化
2015/12/17 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
2016/08/15 Javascript
详解javascript中对数据格式化的思考
2017/01/23 Javascript
Bootstrap table简单使用总结
2017/02/15 Javascript
利用JQuery操作iframe父页面、子页面的元素和方法汇总
2017/09/10 jQuery
详解vue项目中如何引入全局sass/less变量、function、mixin
2018/06/02 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
2018/08/20 Javascript
JavaScript模板引擎原理与用法详解
2018/12/24 Javascript
node.js实现上传文件功能
2019/07/15 Javascript
vue-router之实现导航切换过渡动画效果
2019/10/31 Javascript
[48:27]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
python实现的阳历转阴历(农历)算法
2014/04/25 Python
python对象及面向对象技术详解
2016/07/19 Python
Python win32com 操作Exce的l简单方法(必看)
2017/05/25 Python
使用python进行文本预处理和提取特征的实例
2018/06/05 Python
Python爬虫 bilibili视频弹幕提取过程详解
2019/07/31 Python
python3反转字符串的3种方法(小结)
2019/11/07 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
2019/12/03 Python
如何使用Python自动生成报表并以邮件发送
2020/10/15 Python
Python模块常用四种安装方式
2020/10/20 Python
全球最大的房车租赁市场:Outdoorsy
2018/09/19 全球购物
积极贯彻学习两会精神总结
2014/03/17 职场文书
旷课检讨书范文
2014/10/30 职场文书
2014年督导工作总结
2014/11/19 职场文书
李白故里导游词
2015/02/12 职场文书
2015秋季开学典礼新闻稿
2015/07/17 职场文书