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中open()函数指定文件打开方式的用法
Jun 04 Python
Python中的字符串替换操作示例
Jun 27 Python
使用Python多线程爬虫爬取电影天堂资源
Sep 23 Python
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
Jul 12 Python
Python实现字典的遍历与排序功能示例
Dec 23 Python
Python单元测试实例详解
May 25 Python
python读取和保存图片5种方法对比
Sep 12 Python
python实现RabbitMQ的消息队列的示例代码
Nov 08 Python
DataFrame.to_excel多次写入不同Sheet的实例
Dec 02 Python
如何在django中运行scrapy框架
Apr 22 Python
python调用私有属性的方法总结
Jul 24 Python
python如何绘制疫情图
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
java EJB 加密与解密原理的一个例子
2008/01/11 PHP
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
2013/07/01 PHP
理解php依赖注入和控制反转
2016/05/11 PHP
ImageZoom 图片放大镜效果(多功能扩展篇)
2010/04/14 Javascript
JS Range HTML文档/文字内容选中、库及应用介绍
2011/05/12 Javascript
jquery中的事件处理详细介绍
2013/06/24 Javascript
javascript遍历控件实例详细解析
2014/01/10 Javascript
ECMAScript6的新特性箭头函数(Arrow Function)详细介绍
2014/06/07 Javascript
JS给超链接加确认对话框的方法
2015/02/24 Javascript
jQuery设置和移除文本框默认值的方法
2015/03/09 Javascript
jquery实现简单的轮换出现效果实例
2015/07/23 Javascript
基于JS组件实现拖动滑块验证功能(代码分享)
2016/11/18 Javascript
Angular2实现自定义双向绑定属性
2017/03/22 Javascript
js canvas实现简单的图像扩散效果
2020/06/28 Javascript
浅谈JavaScript中的属性:如何遍历属性
2017/09/14 Javascript
vue判断input输入内容全是空格的方法
2018/03/02 Javascript
Vue 组件参数校验与非props特性的方法
2019/02/12 Javascript
jquery实现烟花效果(面向对象)
2020/03/10 jQuery
JavaScrip如果基于url实现图片下载
2020/07/03 Javascript
vue实现PC端分辨率适配操作
2020/08/03 Javascript
vscode 使用Prettier插件格式化配置使用代码详解
2020/08/10 Javascript
antd form表单数据回显操作
2020/11/02 Javascript
[01:10]DOTA2英雄背景故事第四期之混沌法则混沌骑士
2020/07/16 DOTA
python BeautifulSoup设置页面编码的方法
2015/04/03 Python
Python 闭包的使用方法
2017/09/07 Python
python学习基础之循环import及import过程
2018/04/22 Python
Python字典添加,删除,查询等相关操作方法详解
2020/02/07 Python
Python如何实现爬取B站视频
2020/05/20 Python
德尔福集团DELPHI的笔试题
2012/02/22 面试题
校本教研工作制度
2014/01/22 职场文书
经典演讲稿开场白
2014/08/25 职场文书
2014年六五普法工作总结
2014/11/25 职场文书
2015年精神文明建设工作总结
2015/04/21 职场文书
小平小道观后感
2015/06/09 职场文书
居安思危观后感
2015/06/11 职场文书
详解Mysql 函数调用优化
2021/04/07 MySQL