python爬虫学习笔记(2)-----代理模式
一、UserAgent
UserAgent 中文意思是用户代理,简称UA,它是一个特殊字符串头,使得服务器能够识别用户
设置UA的两种方式:
1、heads
from urllib import request, error
if '__name__' == '__main__':
url = "http://www.baidu.com"
try:
headers = {}
headers['User-Agrnt'] = "User-Agent"," Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Titan)"
req = request.Request(url, headers = headers)
rsp = request.urlopen(req)
html = rsp.read().decode()
print(html)
except error.HTTPError as e:
print(e)
except error.URLError as e:
print(e)
except Exception as e:
print(e)
2、使用add_header
from urllib import request, error
if __name__ = '__main__':
url = "http://www.baidu.com"
try:
req = request.Request(url)
req.add_header('User-Agent',"Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.33 Safari/534.3 SE 2.X MetaSr 1.0")
rsp = request.urlopen(req)
html = rsp.read().decode()
print(html)
except error.HTTPError as e:
print(e)
except error.URLEror as e:
print(e)
except Excecption as e:
print(e)
二、ProxyHandler(代理服务器)
由于很多网站会监测某一段时间内某个IP的访问次数,如果访问次数过多过快,它会禁止这个IP访问。所以我们可以设置一些代理服务器,就算IP被禁止依然可以换个IP继续访问。代理用来隐藏真实访问,代理也不许频繁访问某一个固定网址,所以,代理一定得多
基本使用步骤:
1、设置代理地址
2、创建ProxyHandler
3、创建Opener
4、安装Opener
获取代理服务器地址
- www.xicidaili.com
- www.goubanjia.com
from urllib import request, error
if __name__ == '__main__':
url = "http://www.baidu.com"
# 设置代理地址
proxy = {'http': '27.203.245.212:8060'}
# 创建ProxyHandler
proxy_handler = request.ProxyHandler(proxy)
# 创建Opener
opener = request.build_opener(proxy_handler)
# 安装Opener
request.install_opener(opener) try:
rsp = request.Request(url)
req = request.urlopen(rsp)
html = req.read().decode('utf-8')
print(html)
except error.HTTPError as e:
print(e)
except error.URLError as e:
print(e)
except Exception as e:
print(e)
如果输出显示:<urlopen error [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。> 把第五行的IP地址换一个即可
python爬虫学习笔记(2)-----代理模式的更多相关文章
- python爬虫学习笔记(一)——环境配置(windows系统)
在进行python爬虫学习前,需要进行如下准备工作: python3+pip官方配置 1.Anaconda(推荐,包括python和相关库) [推荐地址:清华镜像] https://mirrors ...
- Python爬虫学习笔记(三)
Cookies: 以抓取https://www.yaozh.com/为例 Test1(不使用cookies): 代码: import urllib.request # 1.添加URL url = &q ...
- 【Python爬虫学习笔记(2)】正则表达式(re模块)相关知识点总结
1. 正则表达式 正则表达式是可以匹配文本片段的模式. 1.1 通配符 正则表达式能够匹配对于一个的字符串,可以使用特殊字符创建这类模式.(图片来自cnblogs) 1.2 特殊字符的转义 由于在正则 ...
- python爬虫学习笔记
爬虫的分类 1.通用爬虫:通用爬虫是搜索引擎(Baidu.Google.Yahoo等)“抓取系统”的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 简单来讲就是尽可 ...
- 一入爬虫深似海,从此游戏是路人!总结我的python爬虫学习笔记!
前言 还记得是大学2年级的时候,偶然之间看到了学长在学习python:我就坐在旁边看他敲着代码,感觉很好奇.感觉很酷,从那之后,我就想和学长一样的厉害,就想让学长教我,请他吃了一周的饭,他答应了.从此 ...
- Python、pip和scrapy的安装——Python爬虫学习笔记1
Python作为爬虫语言非常受欢迎,近期项目需要,很是学习了一番Python,在此记录学习过程:首先因为是初学,而且当时要求很快速的出demo,所以首先想到的是框架,一番查找选用了Python界大名鼎 ...
- 【Python爬虫学习笔记(1)】urllib2库相关知识点总结
1. urllib2的opener和handler概念 1.1 Openers: 当你获取一个URL你使用一个opener(一个urllib2.OpenerDirector的实例).正常情况下,我们使 ...
- Python爬虫学习笔记(一)
1.urllib2简介 urllib2的是爬取URL(统一资源定位器)的Python模块.它提供了一个非常简单的接口,使用urlopen函数.它能够使用多种不同的协议来爬取URL.它还提供了一个稍微复 ...
- Python爬虫学习笔记——防豆瓣反爬虫
开始慢慢测试爬虫以后会发现IP老被封,原因应该就是单位时间里面访问次数过多,虽然最简单的方法就是降低访问频率,但是又不想降低访问频率怎么办呢?查了一下最简单的方法就是使用转轮代理IP,网上找了一些方法 ...
随机推荐
- phantomjs rendering
http://wwwy3y3.ghost.io/pageres-phantomjs-capture-sreenshot-chinese-fonts-not-render-correctly/ 在使用中 ...
- Windows ->> FIX: “The security database on the server does not have a computer account for this workstation trust relationship”
前几天在做AlwaysOn实验时遇到搭建活动目录域时某台已经加入AD的机器无法以域管理员账户登录的情况. 报错信息是:The security database on the server does ...
- Windows下Redis集群配置
Redis集群学习地址:http://blog.csdn.net/dc_726/article/details/11694437 Windows-32系统下搭建Redis集群 一.Redis主从同步原 ...
- Hibernate初探之单表映射
http://www.imooc.com/video/7816 1.什么是ORM?为什么使用Hibernate? 对象关系映射:为了少写和底层数据库相关的sql语句,方便程序的维护.修改,提高跨平台性 ...
- January 30 2017 Week 5 Monday
I can accept defeat but could not accept to give up. 我可以接受失败,但不能接受放弃. Fortune has not always smiled ...
- docker初使用(主要记录命令)
启动服务 docker run -it -p : steveny/predictionio: /bin/bash 开始所有服务 pio-start-all 查看有那些服务 jps -l $ docke ...
- 026json和pickle,xml模块
###json和pickle ##json#dumps()data = #源数据data = json.dumps(data)这时候的data可以写入到文件了#loads()data = f.read ...
- 配置RedisTemplate、JedisPoolConfig、JedisConnectionFactory+自定义序列化 (xml+java方式)+使用
java方式配置RedisTemplate //spring注入ben //@Bean(name = "redisTemplate") public RedisTemplate i ...
- 2018年暑假ACM个人训练题6 解题报告
A:水题 https://www.cnblogs.com/yinbiao/p/9311834.html B:考察进制的转化 https://www.cnblogs.com/yinbiao/p/9311 ...
- 《Inetnet History,Technology and Security》学习笔记
前言 本文为观看Cousera的Michigan<Internet History, Technology and Security>教程的个人学习笔记,包括了每个week的概要和个人感想 ...