记一个爬虫入口选择失误引发的坑

举报
小四毛 发表于 2018/12/20 13:43:03 2018/12/20
【摘要】 记录一次寻找爬虫入口踩到的坑,希望可以帮助你。

大家好,我是四毛.

 今天来分享一个爬虫的案例,讲一下这个坑到底是怎么样的一个坑。


开始

       目标网址:

http://guba.eastmoney.com/list,cjpl_1.html

       目标数据:页码数

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1
本来想着,这种数据都应该在网页源码里的,结果找了一圈,发现没有,源代码是这样的:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1

 压根没有关于页面的文字,但是大家请注意data-pager属性对应的值,这个在我分析完以后我才发现原来有这个就够了。


640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1



       没办法,抓包分析吧,在XHR和JS下面没有找到直接这部分数据,那么说明就是JS生成的了。在这里,我把返回的的JS都找了一遍,用‘page’做关键词搜索,然后在下面的这个JS里面找到了相关的函数:

http://gbfek.dfcfw.com/gubav5/js/list_c_0924cbd988.js

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1



       可以看到,我们在网页上看到的页数的相关信息确实是通过JS生成了。那么我们可以怎么处理呢?是不是非得用selenium之类的呢?其实未必。

       看完这段JS的时候,我一直再找具体的文章总数或者页面总数的值,但是一直没有找到。后来想起来前面说的data-page属性里面似乎有一个比较大的值,没错,就是下面这个:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1


        想着难道这个数是文章的总数?

       后来拿着计算器算了一下,确实是的。。。

    531299, 文章总数

    80, 每个页面的文章数

    2 ,当前页面

       接下来的爬虫就可以直接用个除法就得到结果了。

       后来,当我打开另一个股吧时,我看到了这个:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1


       一口老血吐在键盘上,为什么我找的入口上面没这个,费了那么多事情。 

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1


 所以这个坑就是如果一开始看到上面的这个页面,就可以一下子就知道

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1

这里的数字的意义了。但是分析分析js,也可以增强解决问题的能力,毕竟不是每个网站都这么傻把数据就放在源码里了。


总结


       所以建议大家写爬虫时,一定要找一个好一点的入口,多找找多翻翻,有好处。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。