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实现的系统实用log类实例
Jun 30 Python
Python中进程和线程的区别详解
Oct 29 Python
python版opencv摄像头人脸实时检测方法
Aug 03 Python
python批量从es取数据的方法(文档数超过10000)
Dec 27 Python
对Python定时任务的启动和停止方法详解
Feb 19 Python
python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)
May 30 Python
python图片二值化提高识别率代码实例
Aug 24 Python
python hashlib加密实现代码
Oct 17 Python
django 读取图片到页面实例
Mar 27 Python
python实现音乐播放和下载小程序功能
Apr 26 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
May 10 Python
Python自动创建Excel并获取内容
Sep 16 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
php park、unpark、ord 函数使用方法(二进制流接口应用实例)
2010/10/19 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
2013/07/02 PHP
PHP中如何使用session实现保存用户登录信息
2015/10/20 PHP
微信获取用户地理位置信息的原理与步骤
2015/11/12 PHP
yii 2.0中表单小部件的使用方法示例
2017/05/23 PHP
7款吸引人眼球的jQuery/CSS3特效实例分享
2013/04/25 Javascript
js 时间函数应用加、减、比较、格式转换的示例代码
2013/08/23 Javascript
Javascript 浮点运算的问题分析与解决方法
2013/08/27 Javascript
jQuery DOM删除节点操作指南
2015/03/03 Javascript
学习JavaScript设计模式(链式调用)
2015/11/26 Javascript
javascript实现简易计算器的代码
2016/05/31 Javascript
webix+springmvc session超时跳转登录页面
2016/10/30 Javascript
探讨跨域请求资源的几种方式(总结)
2016/12/02 Javascript
JavaScript实现form表单的多文件上传
2020/03/27 Javascript
vue如何从接口请求数据
2017/06/22 Javascript
详解如何在angular2中获取节点
2017/11/23 Javascript
AngularJS自定义过滤器用法经典实例总结
2018/05/17 Javascript
Vue瀑布流插件的使用示例
2018/09/19 Javascript
重学 JS:为啥 await 不能用在 forEach 中详解
2019/04/15 Javascript
js 将线性数据转为树形的示例代码
2019/05/28 Javascript
jquery实现鼠标悬浮弹出气泡提示框
2020/12/23 jQuery
[44:15]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第二局
2016/03/06 DOTA
Python语言生成水仙花数代码示例
2017/12/18 Python
基于DataFrame筛选数据与loc的用法详解
2018/05/18 Python
Python连接Redis的基本配置方法
2018/09/13 Python
Python qrcode 生成一个二维码的实例详解
2020/02/12 Python
HTML5 history新特性pushState、replaceState及两者的区别
2015/12/26 HTML / CSS
兰蔻加拿大官方网站:Lancome加拿大
2016/08/05 全球购物
销售助理岗位职责
2014/02/21 职场文书
婚礼主持词开场白
2014/03/13 职场文书
电子信息工程自荐信
2014/05/26 职场文书
安全演讲稿开场白
2014/08/25 职场文书
软件项目经理岗位职责
2015/04/01 职场文书
幼儿园教师读书笔记
2015/06/29 职场文书
2015秋季开学典礼新闻稿
2015/07/17 职场文书
MySQL 不等于的三种使用及区别
2021/06/03 MySQL