为了账号安全,请及时绑定邮箱和手机立即绑定

JS阻止爬取网站,如何解决?

JS阻止爬取网站,如何解决?

PHP
撒科打诨 2019-03-07 20:56:19
因工作需要,需要程序定时去获取网站发布的要闻,地址为:http://cnda.cfda.gov.cn/WS04/...。 尝试过PHP,NODEJS,C#都未能抓取成功,该网站里有一段JS会阻止后台的抓取,抓下来的也是这段JS,后面的内容不会继续加载了。 比较有挑战哦,各位可以看看。PS:一定是要用后端抓取,浏览器上看到页面无意义。
查看完整描述

5 回答

?
达令说

TA贡献1821条经验 获得超6个赞

selenium

查看完整回答
反对 回复 2019-03-18
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

这样的话不是一段js阻止抓取,而是一段js负责加载剩余内容,现在一些框架也是用js加载内容的,你在浏览器里禁用掉js再开应该也是一样的效果,你从那段js里抠出这个网站的api应该就行了,或者从那段js里解密出网站的真正内容。这里有个需要确定的问题是这段js是负责从服务器上加载(并解密)剩余内容,还是负责直接解密剩余内容(剩余内容已经包含在这段js中)

当然如果你的抓取规模不大的话直接开个无头chrome抓就行了

查看完整回答
反对 回复 2019-03-18
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

找api接口,根据api接口去获取内容!

查看完整回答
反对 回复 2019-03-18
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

这个网站好恶心。。。页面中有个js会call debugger,然后还下载要给js也会call debugger……

如果想直接在浏览器console里解决的话,就只有屏蔽这两个脚本了。

首先对document右击选择屏蔽Js,如下图:

https://img1.sycdn.imooc.com//5c8f3acd00015c9803150281.jpg

然后选Network页面,里面有个乱码名字的脚本,右击屏蔽:

https://img1.sycdn.imooc.com//5c8f3acf0001b29508000502.jpg

查看完整回答
反对 回复 2019-03-18
  • 5 回答
  • 0 关注
  • 595 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信