想写一个爬虫,页面js的执行用electron(类似nightmarejs的实现,起到phantomjs的作用)
页面中本来有一个img他的src值会被js改变
我想获得改变之后的值
我怎么知道这段改变src值得代码到底执行没有呢,img是否显示了新的图片
本来有一段这样的
<img src="...">
<script>
// change img src
</script>
我想获得更改后的,img的二进制数据
并不能,你的爬虫取回的只是一个 html,除非你跑一个 PhantomJS
做爬虫一定要用最“直接”的方法来解决问题。
比如你说的有一个动态的img值,那你要获取动态改变之后的值,就应该关注改变的过程本身,而不是顺着一个时间顺序关注整体过程的每一步。
简单来说,是哪个JS文件在改变图片的src,具体又是其中的哪一行?可能JS文件经过压缩合并之后你很难读懂,那就从数据的流动上入手,这个改变之后的src值是和整个document一起获取回来的吗?还是放置在某个JS文件中储存?还是在触发src更改之后,再异步获取然后填充进来的?
只要抓到了你需要的数据,再找到它的规则,比如如何根据主url获得这个改变图片的src,再根据这个规则去直接获取就好了。
模拟浏览器行为有时候也会用到,但大部分情况下不需要。