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实现给数组按片赋值的方法
Jul 28 Python
Python:Scrapy框架中Item Pipeline组件使用详解
Dec 27 Python
Python基于socket实现简单的即时通讯功能示例
Jan 16 Python
Python实现合并两个列表的方法分析
May 28 Python
django rest framework 数据的查找、过滤、排序的示例
Jun 25 Python
python求最大连续子数组的和
Jul 07 Python
python实现自动解数独小程序
Jan 21 Python
Python2和Python3的共存和切换使用
Apr 12 Python
Python的垃圾回收机制详解
Aug 28 Python
利用pytorch实现对CIFAR-10数据集的分类
Jan 14 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
Mar 19 Python
Django-silk性能测试工具安装及使用解析
Nov 28 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代码维护,重构变困难的4种原因分析
2016/01/25 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
PHP生成随机数的方法总结
2018/03/01 PHP
Laravel如何创建服务器提供者实例代码
2019/04/15 PHP
javaScript 数值型和字符串型之间的转换
2009/07/25 Javascript
jquery ajax对特殊字符进行转义防止js注入使用示例
2013/11/21 Javascript
使用jquery制作弹出框效果
2015/04/03 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
2015/09/01 Javascript
Jquery时间轴特效(三种不同类型)
2015/11/02 Javascript
JS延时提示框实现方法详解
2015/11/26 Javascript
JS 滚动事件window.onscroll与position:fixed写兼容IE6的回到顶部组件
2016/10/10 Javascript
Windows系统下安装Node.js的步骤图文详解
2016/11/15 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
2016/11/24 Javascript
浅谈Vue render函数在ElementUi中的应用
2018/09/06 Javascript
在axios中使用params传参的时候传入数组的方法
2018/09/25 Javascript
微信小程序canvas分享海报功能
2019/10/31 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
2020/03/17 Javascript
JavaScript实现网页下拉菜单效果
2020/11/20 Javascript
8个非常实用的Vue自定义指令
2020/12/15 Vue.js
[04:53]DOTA2英雄基础教程 祈求者
2014/01/03 DOTA
[46:00]Ti4 冒泡赛第二轮LGD vs C9 2
2014/07/14 DOTA
浅析Python中将单词首字母大写的capitalize()方法
2015/05/18 Python
Python 中pandas.read_excel详细介绍
2017/06/23 Python
Python使用struct处理二进制的实例详解
2017/09/11 Python
Python生成短uuid的方法实例详解
2018/05/29 Python
python实现诗歌游戏(类继承)
2019/02/26 Python
python3实现mysql导出excel的方法
2019/07/31 Python
python列表插入append(), extend(), insert()用法详解
2019/09/14 Python
python关于倒排列的知识点总结
2020/10/13 Python
高中生班主任评语
2014/04/25 职场文书
新文化运动的基本口号
2014/06/21 职场文书
会计电算化实训报告
2014/11/04 职场文书
开会通知
2015/04/20 职场文书
社区党支部公开承诺书
2015/04/29 职场文书
2016年中秋节寄语大全
2015/12/07 职场文书
微信小程序APP的生命周期及页面的生命周期
2022/04/19 Javascript