爬虫之数据获取的3种方法

2020/3/26 14:11:00

g9pv0mh2j7.jpeg

这是在开发一个持续监测电商数据变化的工具过程中的经验。

集爬虫、数据可视化为一体的工具

爬取网上的数据,最笨也最有效的方法就是解析HTML标签,通过class或者id或者HTML元素之间的位置关系(父子、前后)来选择到目标标签,然后通过getAttribute,getComputedStyle,innerText等来获取需要的数据。

之前写过2篇文章,都涉及到这种最有效的方法:

技能之谷歌Chrome爬虫

可视化爬虫SPY

在实践中,我发现根据网站的技术实现,还有更巧妙的数据获取方式:

1

分析页面的HTML元素绑定的js事件

下拉刷新一般通过一个loading来处理,所以我们可以分析loading的元素标签,class及id或其他属性,找到驱动它的js函数,调用即可。

比如:www.wineyun.com

发现下拉刷新的时候,会出现一个动画,是通过一个gif的实现的,找到这个标签的class:index_loading。

2.png

那怎么找都它绑定的js函数呢。

CTRL+F,输入index_loading,很顺利,在页面里就找到了调用函数,即getGoodsList。

3.jpeg

那我只要按他的逻辑调用这个函数就可以快速的获取所有异步加载的数据啦~

Ps:

可以直接在Console面板中输入:getGoodsList(),即可获取一次异步加载的内容;

也可以改写getGoodsList函数,把获取的结果直接存入我们自己的数据库。

2

通过开发者工具Network寻找到接口URL

比如huaban.com

下拉页面,打开开发者工具Network,查看加载的内容

4.jpeg

发现异步加载会调用?page=3的接口,点击查看下具体的情况,Response可以看到服务器返回的数据,如下

5.jpeg

就是我们要找的数据,所以直接把Request URL

6.png

直接贴浏览器的地址栏就可以看到返回的json文件啦:

7.jpeg

以上是3个技巧,熟练掌握,提示编写爬虫的效率。