趣文网 > 作文大全

学习爬虫的第47天 我学会了伪装 欺骗了豆瓣

2020-11-26 00:40:01
相关推荐

获取User-Agent

之前在第41天学习的时候,接触了 requests 模块中的 status 方法,就是获取返回状态的意思。。

当时访问 www.baidu.com,返回的是 200。

在 urllib 也有 status 方法,效果是一样的。

但是如果访问 豆瓣,返回的却是 418 错误,也就是说触发了网站的反爬机制。

那么,怎么让网站认为我们是一个真实的人,是用浏览器在访问网站呢?

还记得昨天提过的User-Agent嘛?

浏览网页时,找到我们自己的User-Agent就可以了。

在 chrome 浏览器打开网页(比如www.baidu.com),按 F12 。

刷新下网站后,点 Network,点红色圆点停止进程,再点显示进度条那个地方。

就可以看到下面 name 栏的地方,显示 www.baidu.com ,再点击它。

看到右面的 Headers,拉到最下面就找到 User-Agent 辣!

选中它、复制,粘入 headers 。

跟着老师一通半懵逼状态的操作,最后总算是结果还比较满意,成功输出了信息。

也就是,让对方服务器理解,我们这头确实是真人访问的。

而这段代码中,parse、urlencode、Request 这些东东都是干啥用的?什么时候用?老师基本上是一笔带过,没怎么提。

哎,这就是我以前说的,太内行了,有些知识他感觉理所应当会的,或者,也没准他觉得这东东没啥可讲的,用熟了就明白了吧。

那么,用这种办法,访问豆瓣可以吗?

一样也是没有问题的,这里直接把 data 删除了,相当于把上面我提出的问题,用一个简单粗暴的方法给解决了。

看下面的执行结果,有登录豆瓣等各种文字,也就是说,事实上,豆瓣的服务器认为我们是个真实的人,已经允许我们进入他的首页了。

这下子,算是终于把 urllib 模块简单讲解完了。

爬取1个网页

下面进入正题,开始爬取一个豆瓣电影top250的网页。

回到主文件 spider.py。

在爬取网页环节,定义一个函数 askURL。

然后定义头部信息,按照之前的方法,从浏览器里复制过来 User-Agent。

再后面使用 try... excepy... 设置一些需要排除的情况,最后在主函数里面调用即可。

然后运行一下,蹊跷的事情发生了。

我这头运行成功,完全就是正常访问的样子,而老师那里却显示的是418错误。

这里原来是有个注意事项的,那就是将 User-Agent 复制过来的时候,一定不能有空格。

如果有空格的话,服务器也是很敏感的,一样是可以识别出来的。

最后加上一个 return ,将结果返回。

爬取10个网页

一个网页能爬取了,后面的想要都爬取,那就要循环语句上场了。

记得前面的分析是一共10页,每页25条记录,所以循环的范围定为0--9页。

现在都爬取完了,这应该算是初级任务完成,下面解析网页要怎么搞呢?

还真是有点小期待辣。

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

极简主义作文 帮助老人的作文 我有一个想法作文200 欢乐的事作文 关于精益求精的作文 写革命烈士的作文 2016江苏高考作文题 关于扬州的作文 跳绳真有趣作文400字 四年级作文指导 橘子的作文300字 尊重作文300字 作文我为祖国点赞 学包粽子的作文 关于帮助的作文400字 写打扫卫生的作文 童年的趣事作文300字 停电的夜晚作文 去环球影城作文 细节描写作文200字 小学毕业的作文600字 欣赏别人作文 自传作文六百字 以只要还在为题的作文 毅行作文 国庆叙事作文600字 以表扬为话题的作文 作文一件难忘的事情 中华魂作文800字 海边的海鸥作文