静态网页爬虫教程(5)带翻页的多篇文章内容提取和保存

这是我们静态页面爬取的最后一篇了,主要针对的问题是翻页爬取。
先来观察一下翻页后的新页面地址是什么吧,我们可以看到,新页面的地址的设置很简单,就是改了个序号,第一页是1.shtml,第二页是2.shtml……最后一页就是18.shtml。
在这里插入图片描述
那就好办了,我们可以先用循环生成每页的地址,然后再按照前面的方法对每一页进行爬取就OK了。

url1=[]
for i in range(18):
    url1.append('http://greenfinance.xinhua08.com/qyhjxxpl/'+str(i+1)+'.shtml')
url1

在这里插入图片描述
下面的思路就比较简单了,先从列表中取出第一页的地址,然后爬取第一页所包含的所有页面并保存,接着再取出第二页的地址,如此炮制……
总的代码如下:

import os
os.chdir('d:\\')
import requests
import re
url1=[]
#生成18个页面的地址
for i in range(18):
    url1.append('http://greenfinance.xinhua08.com/qyhjxxpl/'+str(i+1)+'.shtml')
    #挨个从每一页里取出这一页所包含的地址和标题 
    for j in range(len(url1)):
        urlt=url1[j]
        req=requests.get(urlt)
        req.encoding=requests.utils.get_encodings_from_content(req.text)
        #text1=re.findall('<div id="ctrlfscont" class="article-content"><p>(.*?)</p></div>',req.text,re.S)
        ret=re.findall('<h4>(.*?)</h4>',req.text,re.S)
        reh=re.findall('<div class="newsinfo">.*?<a href="(.*?)">',req.text,re.S)
        #对这一页的每一个地址对应的内容进行提取和保存
        for k in range(len(reh)):
            urlt=reh[k]
            ret[k]=ret[k].replace('*','st')
            req=requests.get(urlt)
            req.encoding=requests.utils.get_encodings_from_content(req.text)
            text2=re.findall('<div id="ctrlfscont" class="article-content"><p>(.*?)</p></div>',req.text,re.S)
            text2=re.sub('<p>|</p>|&ldquo;|&rdquo;','',str(text2).replace('\\n',''))
            with open(ret[k]+'.txt','w') as f:
                f.write(text2)

OK,到此为止大功告成。不到一会儿,300多篇文章的内容就保存好了,简直不要太容易哦。
在这里插入图片描述

有些朋友就不明白了,这些文本下载保存下来能有什么用呢?一般人我不会告诉他,我们可以用这些东西去做文本挖掘和热点发现。如果想继续玩,请关注下一波:文本挖掘和热点发现系列。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值