前面的文章中,我们已经成功的完成了对一篇文章的内容提取和保存。现在新的问题又来了,之前我们提取过的超链接有那么多,标题也有不少,怎么能只提取一篇文章而放弃一堆呢?别急,下面我们就开始说说多篇文章的内容提取和保存。聪明的朋友肯定早就猜到了,接下来我们要做的就是循环,话不多说,开始折腾。

        for k in range(len(reh)):urlt=reh[k]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)

每次从超链接列表中取出一个,然后访问这个页面,接下来提取它的内容,最后将这篇文章的内容保存下来。是不是很简单?
看上去好像不错,可实际运行中会出现一个问题,会报出[errno 22] invalid argument: 这样的错误。查找了一下发现,有些文章的标题中含有windows文件命名时不能使用的字符,如*等,像有篇文章中出现的*ST,明明是个很正常的东西,可就是不能直接用于文件命名,没办法,只好自己处理一下,将这些字符另外替代掉。

        for k in range(len(reh)):urlt=reh[k]#将*换成st,自己能懂就好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)

总的代码如下:

import requests
import re
url='http://greenfinance.xinhua08.com/qyhjxxpl/'
req=requests.get(url)
req.encoding=requests.utils.get_encodings_from_content(req.text)
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)

效果也是可以的:

当然,这里还是有些问题,有些文章里依旧含有多余字符,可以自行在前面的代码中使用replace()增加一些内容一次性去除。
到目前为止,同一页面的多篇文章内容的提取和保存就已经完成了,过程还是很简单的吧,但还没结束,因为我们发现这才是第一页的,它每页都有20篇文章,我们要把所有的文章全部下载下来还需要翻页,所以接下来我们将继续多页面的多篇文章内容的提取和保存,请继续教程(5)。

静态网页爬虫教程(4)同一页面多篇文章内容提取和保存相关推荐

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

    这是我们静态页面爬取的最后一篇了,主要针对的问题是翻页爬取. 先来观察一下翻页后的新页面地址是什么吧,我们可以看到,新页面的地址的设置很简单,就是改了个序号,第一页是1.shtml,第二页是2.sht ...

  2. 静态网页爬虫教程(2)链接和标题的提取

    初战告捷,我们继续下一步,来获取网页中的标题和超链接. 观察一下,第一篇文章是这样的: 这篇文章的标题和超链接信息在我们返回的文本中是这样的: 上面的表示是超链接的内容,而下面的则是表示是标题大小为4 ...

  3. 静态网页爬虫教程(3)文本的提取和保存

    前面我们已经把文章的标题和超链接都提取出来了,看上去我们已经有能力把这些文章的内容全部提取出来了.但路要一步一步走,饭要一口一口吃,我们还是先来看一篇文章的内容是怎么提取和保存的吧. 首先还是先来看看 ...

  4. 静态网页爬虫教程(1)页面的获取

    最近想看看绿色金融方面的内容,也不知道搞啥,先在网上找找信息,于是把目标瞄上了新华财经--中国金融信息网.找到了其中的绿色金融的版块.发现上面的文章都是静态页面构成的,可以先把所有的页面信息爬取下来, ...

  5. 您访问的网页出错了! 网络连接异常、网站服务器失去响应_数据分析系列——静态网页爬虫进阶(requests)...

    在之前"数据分析系列--数据分析入门"16篇中有与爬虫的相关内容,介绍的相对简单.静态网页爬虫进阶系列将分别从网页的自动爬取(Requests).网络数据解析(BeautifulS ...

  6. python 静态网页_Python静态网页爬虫相关知识

    想要开发一个简单的Python爬虫案例,并在Python3以上的环境下运行,那么需要掌握哪些知识才能完成一个简单的Python爬虫呢? 爬虫的架构实现 爬虫包括调度器,管理器,解析器,下载器和输出器. ...

  7. 静态网页制作教程 (转载)

    方法/步骤 新建一个txt文本文档,先不要急着修改文件后缀名,有基础的朋友手动输入HTML代码,不会也没有关系,百度搜索"网页HTML代码". 代码: <!Doctype h ...

  8. Python爬虫_第二篇 静态网页爬虫(3)_豆瓣数据下载(BeautifulSoupre)

    4.采用正则表达式.BeautifulSoup进行解析提取[豆瓣好.中.差三个短评页面各60条评论数据] 4.1 爬虫的一般思路 分析目标网页,确定爬取的url路径,headers参数[判断是静态网页 ...

  9. python入门代码示例-Python入门简单的静态网页爬虫3.0 (爬虫的示例代码)

    一.需求分析 爬取百度词条Python页面的相关100个页面,分析目标:分析(url格式 数据格式 网页编码 ).url格式限定了爬取的网页格式避免一些不相干的网页的爬取.数据格式主要是内容中相关的标 ...

最新文章

  1. 国外centos服务器配置epel源
  2. 主键、唯一键与唯一索引的区别
  3. 如何做好现状调研与需求分析
  4. java棋盘覆盖分治法_【单选题】实现棋盘覆盖算法利用的算法是( ) A. 分治法 B. 动态规划法 C. 贪心法 D. 回溯法...
  5. python自动化办公excel-自动化办公:python 操作Excel
  6. JavaScript网页特效---对联广告,网站对联广告
  7. 解决Myeclipse中断点不起作用的方法
  8. C#下对象与JSON串互相转换
  9. UNews | 1.8亿!优维科技完成C轮融资!
  10. Doctype作用?标准模式与兼容模式各有什么区别?
  11. Acrel-1200分布式光伏运维平台
  12. 厉害了软考!让你拥有万能的北京“绿卡”居住证!
  13. 生活小技巧 | win10开热点给手机使用
  14. python数据分析 - numpy | ndarray数组 | numpy常用函数
  15. linux su无效_linux系统 su切换用户失败情况
  16. 哈希表构造与处理冲突方法
  17. 【多线程并发编程】十一 生产者和消费者问题(面试必问)
  18. 俞敏洪 :阻碍你成长的,其实是你自己
  19. 我还能从中国男子足球队得到快乐吗?
  20. LightOJ 1404 Sending Secret Messages 费用流

热门文章

  1. LeetCode每日一题——792. 匹配子序列的单词数
  2. IE7 (WIN2003)中文版下载
  3. html基础-表格篇
  4. IE7-span折行问题
  5. html表格竖向显示,html表格,表头竖向固定,横向滚动的例子
  6. iphone4s必装AppSync补丁教程使iOS5完全越狱
  7. 计算机辅助设计高级绘图员技能鉴定试题,计算机辅助设计高级绘图员技能鉴定试题...
  8. php代码审计【24】齐博CMS xss 漏洞漏洞
  9. 小票打印机页面打印无法自适应长度导致超长空白打印
  10. php8预加载,如何利用预加载优化Laravel Model查询详解