平时没事喜欢看看freebuf的文章,今天在看文章的时候,无线网总是时断时续,于是自己心血来潮就动手写了这个网络爬虫,将页面保存下来方便查看 先分析网站内容,红色部分即是网站文章内容div,可以看到,每一页有15篇文章
随便打开一个div来看,可以看到,蓝色部分除了一个文章标题以外没有什么有用的信息,而注意红色部分我勾画出的地方,可以知道,它是指向文章的地址的超链接,那么爬虫只要捕捉到这个地址就可以了。
接下来在一个问题就是翻页问题,可以看到,这和大多数网站不同,底部没有页数标签,而是查看更多,这里让我当时突然有点无从下手。
不过在查看源文件时我发现了如下图所示的一个超链接,经测试它指向下一页,那么通过改变其最后的数值,就可以定位到相应的页数上。
那么由以上信息,就可以对爬虫的步骤有一个相应的解决方案1.抓取每一页上的所有文章的位置
2.捕捉每一页文章的URL
3.处理捕捉到的URL
那么问题又来了,我该如何定位每一篇文章在其源代码中的位置呢?
以第一篇文章为例,在源代码中查询”
url = 'http://www.freebuf.com/articles'
globalcontent = urllib.urlopen(url).read()