抓取动态网页(一下拼接一个url访问,果然是的js根据具体算法算出来的 )

优采云 发布时间: 2021-11-14 06:05

  抓取动态网页(一下拼接一个url访问,果然是的js根据具体算法算出来的

)

  一、 分析:

  在动态页面js加载的人民日报中抓取新闻详情

  先打开,然后查看网页源码,发现是一堆js,而且每个新闻都没有具体的url详细信息,所以第一反应是js动态加载拼接的网址。然后按f12查看,只看url,发现很多url。

  然后点击一个特定的新闻详情页,查看url,访问首页时获取url后面的两个数字之一,在f12抓包结果中搜索,找到一个url,点击url,并且发现预览中有很多数据,我的第一反应肯定是每条新闻数据。看到这些数据里面有两个ID,我想我刚才访问的具体新闻详情页上也有两个数字。当然,具体的新闻页面必须通过添加两个ID来形成。于是我尝试拼接一个URL来访问,果然是这样。所以只要抓到这个url,就可以得到每条新闻的详情页。

  

  

  

  但是只加载了10个url,所以想修改里面的show_num值,发现请求失败。仔细看这个网址。有一个安全密钥应该由js根据具体算法计算出来。看了一下拼接成url的js,发现看起来有点大,算了,只要能一直抓到这种url就行了。

  我发现只要向下滚动页面,就会加载一个新的,所以我只需要解决两个问题:

  1.翻页问题,让这个数据url加载。

  2.把这个url抓取到日志中,使用脚本访问获取数据

  在网上查了一些文档,最后决定用python的selenium模块,这是一个打开本地浏览器进行操作的程序,它有一个方法execute_script('window.scrollTo(0, document.body. scrollHeight)' ) 就是把页面往下翻,用这个来一直加载后面的数据url。

  第二个是解决捕获这个数据url的问题。我会用fiddler抓包(这里是抓包工具,根据自己的选择,推荐一个:mitmproxy,也是抓包神器,可以自定义抓包更方便,请百度,谷歌具体操作)

  我这里用fiddler,经常用这个,习惯用。

  对Python感兴趣或者正在学习的朋友,可以加入我们的Python学习演绎群:784758214,看看前辈们是怎么学习的!从基础的python脚本到web开发、爬虫、django、数据挖掘等,从零基础到实际项目的素材都被组织起来。献给每一位蟒蛇小伙伴!分享一些学习方法和需要注意的小细节,教你在学习的同时学会如何用Python赚钱。点击加入我们的python学习者聚集地

  二、使用fiddler抓包写日志

  1.fiddler 导出证书到浏览器

  1.1.打开工具选项

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线