爬虫(隐藏)

1. 修改header目的是爬取网络的时候不被服务器屏蔽。一些网站痛恨程序访问网络,会主动把程序掐掉,为了使代码持续干活,就要隐藏,看起来更像是普通人通过浏览器的正常点击。服务器检查链接user-Agent 的header的类型。

爬虫(隐藏)

可以通过修改程序的headers,两种方法:

爬虫(隐藏)

爬虫(隐藏)

当批量抓取时,频繁操作,给服务器带来巨大压力,服务器会拒绝访问。为了应对,有两种策略:

1. 设置延时,让服务器看起来我们的爬虫程序更加合情合理;

爬虫(隐藏)

但程序的工作效率太低。

2. 使用代理

把需要访问的地址告诉代理,代理把访问的内容原封不动地返回。服务器看到的是代理的地址,可以用多个代理同时访问。

爬虫(隐藏)

 

爬虫(隐藏)

import urllib.request

url = 'http://www.whatismyip.com.tw' #这个网址被访问可以返回访问它的ip

proxy_support = urllib.request.ProxyHandler({'http':'119.6.144.73:81'}) #网上查免费代理ip

opener = urllib.request.build_opener(proxy_support)
opener.addheaders = [('User-Agent','Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36')]

urllib.request.install_opener(opener)

response = urllib.request.urlopen(url)
html = response.read().decode('utf-8')

print(html)

不知道搜到的代理ip问题,没有运行成功。下面是把代理ip做成字典的形式,随机调用。

爬虫(隐藏)