爬虫日记-代理
代理
当我们美好的爬完一个页面之后,喝了一杯茶,决定再爬一次,提升成就感,这时候发现了居然爬不了了!
这是为什么?
因为有些网页他会做了一些反爬措施,你的ip爬取在单位时间内访问了过多次数。所以他就不让你爬了。这种情况我们就可以称之为,你的ip被他的服务器端给封掉了。
那么我们是不是可以通过某种手段来伪装我们的ip,让这个服务器端识别不出来是我们本机的ip,这样是不是就可以无限次数的发起请求了呢?这就是一个有效的反反爬措施。
代理:
就是破解封ip这种反爬机制用的。
什么是代理:
—代理服务器
正常情况下,我们向服务器发送请求,服务器接收到之后会给我们返回数据,代理服务器就相当于是在我们和服务器中间加了一道中转站,我们发送的请求先到代理服务器,然后代理服务器在发送给服务器端,这样服务器端就不知道我们的ip了。
代理的作用:
—突破自身ip访问的限制。
—隐藏自身真是ip。
代理的相关网站:
—快代理
—西祠代理
——www.goubanjia.com
代理ip的类型:
—http:应用到http协议对应的url中
—https:应用到https协议对应的url中
代理ip的匿名度:
—透明:服务器知道该次请求使用了代理,也知道是哪个ip使用了代理
—匿名:知道使用了代理,但不知道是那个ip使用的。
—高匿:不知道使用了代理,更不知道真实的ip
import requests
url='https://www.baidu.com/s?wd=ip'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3730.400 QQBrowser/10.5.3805.400'}
page_text=requests.get(url=url,headers=headers,proxies={'https':'221.178.232.130:8080'}).text
with open('./baidu.html','wt',encoding='utf8')as fw:
fw.write(page_text)
只需要在get里面加上一个关键字参数proxies,然后在里面写上http或者https对应的代理ip,这时候你的代理就生效了,直接访问服务器的ip已经不是你的ip了,是你的代理。