三大爬虫技巧
许多网站针对爬虫的访问都设置了一定的障碍,通过这三步技巧,轻松绕过部分的反爬虫限制。
(1)设置程序休止时间
import time
import random
# 休止睡眠 1 秒 这里秒可自定义
time.sleep(1);
# 随机休眠0或者1秒
random.random();
# 随机休眠1或者5秒
time_interval = random .uniform(1,5)
time.sleep(time_interval)
(2)设置代理
设置代理,代理IP又分三种代理ID:
- 低级别(Transparent Proxy) :服务器知道你在使用代理,且知道你的真实IP
- 中级别(AnonyMous Proxy) :服务器知道你在使用代理,但不知道你的真实IP
- 高级别(Elite Proxy / Highly AnonyMous Proxy):服务器不知道你在使用代理
代理服务器的存在,可以应对网站禁止某个IP访问的反爬虫措施,代理服务器有着不同的匿名类型,通常我们会挑选中、高级别的代理服务器来访问网页。
#使用urllib.request的两个方法进行代理的设置
proxy = urlrequest.ProxyHandler({'https':'24.245.100.212:48678'});
opener = urlrequest.build_opener(proxy);
这里我常用的是 小幻HTTP代理
因为是免费IP,如果不使用请不要长时间占用。
(3)伪装浏览器访问
我们使用Python编码进行数据爬取时,网站是可以识别你是否在使用Python进行爬取,需要你在发送网络请求时,把header部分通过Pyton伪装成浏览器的 User-Agent 的信息。
# 伪装浏览器访问
opener.addheaders = [('User-Agent','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30')]
urlrequest.install_opener(opener)
至于 User-Agent 的信息请自行百度。
练习一:Place Pulse Google街景图爬取
首先,我使用的是外网的一个统计页面,统计出的数据集,这个页面会从谷歌地图中抓取两个街景,并进行对比提问,比如这两张图片中你认为那个更富有.....之类的提问。(PLACE PULSE)
这里如果打不开这个网站,我把数据集上传到CSDN:PLACE_PULSE_PP2_placepulse2.0-数据库文档类资源-CSDN下载
链接:https://pan.baidu.com/s/1hbHWKBWquGKTzz3li8Yk6w
提取码:7uo2
import urllib.request as urlrequest
import time
import random
# 载入包,定义存储目录,连接API
IMG_PATH = "./img/{}.jpg";
# 数据集
DAT