某新闻网站的爬取


某网站新闻抓取

我一直是比较喜欢看新闻类的东西,喜欢了解前沿动态,正好学习了一些爬虫相关的知识,于是对某网站进行抓取,每天获取新闻了解世界科技最新动态

  • 首先我们进行数据的准备

  • 我发现他的标题都在一个返回的一串非标准html中,不是json,如图所示

  • 所以我们请求的首地址就是这一个地址,非原网址地址

  • 得到数据后我们直接使用re模块处理,findall提取标题和下一个请求的href

  • 因为提取出来是很多个数据的列表,所以我们遍历列表来获取新闻页面的具体信息

  • 在此之前我们需要先创建一个文件夹,用来保存获取到的新闻信息(注意,必须使用标准格式写法,否则会出错)

  • 爬取详情页的数据依然使用re模块获取所有的新闻信息

  • 如图所示,我们注意到所有的新闻信息均在一个< p >标签下,所以使用re.findall来获取

  • 但是有个问题是我们获取到的数据在一个列表中,所以我们需要转化为一个字符串,每个< p >标签之间加上换行

  • 最后就是数据的后期美化,因为里面夹杂了很多html的标签,所以我们需要替换掉

  • 有一个特别需要注意的就是\u3000这个,这是一个是全角的空白符,但是我看了下网上的替换方式均有误,网上的写法 str.replace(u'\xa0', u' ')

  • 我测试后发现这个写法是有错误的,我们只需要进行字符转义即可 new_body = new_body.replace("\u3000", '')

  • 然后就是我们的文件保存

  • 文件的名字在之前的new_title中,但是我们还需要构造一个索引,所以我们定义一个num去取标题索引,传入标题和新闻内容,每次所以加+1

  • 保存文件代码

  • 最后,其实我们可以使用xpath写法,这样就可以省去繁琐的字符替换等等,我为了复习re所以选择了这种写法,也不想改版本了,其他新闻可以修改后面的itemCount=10值爬取所有的新闻,鉴于服务器的负载,我就不做了,有愿意的可以自行尝试

  • 附上一张最后的成果图

  • 此为本人原创所有,如有转载,附上原文链接即可,如有其他需要发电子邮件给我也可ajin_w@163.com


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM