这段期间,我在公司主要从事抓取网站的工作,让我真的是收益非浅:
- 分析了大量的站点:
- 投中网:https://www.chinaventure.com.cn/
- 中国招商网:http://www.zhaoshang.net/
- 投资界:http://www.pedaily.cn/
- 36kr:http://www.36kr.com
- 铅笔道:https://www.pencilnews.cn/
- GPLP:http://www.gplp.cn/
上面这些站点,都是比较成熟的,从上面分析网站的思路入手,得到了很多的思路和启发。其中,上面的站点当中,以 36kr 为最为困难的,36kr 所有的文章数据都是获取在底部的 JSON 数据中,通过 HTML 标签进行定位的方式,根本抓取不到。好在我想出了,利用正则表达式去抓取 JSON 数据,轻松获取所需要的文章信息数组。
2. 抓取网站的基本思路
最关键的是获取网站的内容页面。前面的程序,获取索引等等,都是为了能在最终获取网站的内容页面 content。
3.simple_html_dom.php
抓取网站,用的 php 脚本是 simple_html_dom.php,这个是国外人写得抓取工具包,与 jQuery 的语法很类似的。我看了下内部的源代码,利用了大量的正则表达式去定位,达到 CSS 选择器的效果,获取标签内部的字符串是最终的目的。
4. 关于抓取文章数据存储
为了方便和简洁考虑,所有的文章数据都存储在一个数据表中,不建议多建立数据表存储。我都只建立了一个表 articlde 表,一个模型层操作文件 article_m.php 文件。能够精简的尽量精简化。
5. 关于分页函数的处理
现在的网站的分页函数的处理,都是基本上利用 AJAX 来实现动态加载分页的,很多网站都是的。异步加载获取网站的页面数据。