今天写完爬取贝壳房源的爬虫后,开始试着套娃5i5j的房源爬取,没几次,突然报403的错误...但是我明明已经加了headers的User-Agent了啊,还加了timeout时间限制,仍然被识破了。开始查大神们的解决方法。看大神们在爬与反爬技术之间较量,感叹:道高一尺魔高一丈,一山还有一山高啊...
最开始接触爬虫的时候,就直接requests.get(),对爬取一个普通小说网站来说没毛病,数据顺利就下来了。紧接着开始试着这样爬取安居客的房源,被封ip...欲哭无泪,爬下了小说而有些自得的我瞬间懵逼...留下了两行小白的泪水。
追索大神的道路,发现说是因为我直接用requests.get()而不带任何请求头信息会让代码识别你不是浏览器访问,那么无硝烟的战争就打响了。
反爬:你这样信息没有,那样没有,不像个浏览器访问!肯定是爬虫
虫王:那我就加个Hearder的信息,User-Agent等信息通通模拟出来
反爬:你访问速度太快,人都不休息的么?肯定是爬虫
虫王:那我设定个timeout时间,或者再加个sleep...完全模拟人停顿性的访问。
反爬:你这个请求头都一摸一样的么?ip也一样!访问这么多次,多半是爬虫!
虫王:Too young too simple...我搞多个浏览器,弄多个请求User-Agent出来放一个list里面,每次都random.choice(),给你多样化选择,ip?这个麻烦点,但现在大把交费IP给我用,比如极光头条...
反爬:你newbee...我先去重新弄一波,正面刚别怂!
虫王:小伙子继续努力...
大神的领域确实牛逼,我这小白看着这些无声的对抗,笑着流泪...