某新闻网站的爬取

某网站新闻抓取

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

  • 首先我们进行数据的准备
  • 我发现他的标题都在一个返回的一串非标准html中,不是json,如图所示
    1522559-20190413114223033-682111716.png

  • 所以我们请求的首地址就是这一个地址,非原网址地址
    1522559-20190413113839354-1439734315.png

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

  • 因为提取出来是很多个数据的列表,所以我们遍历列表来获取新闻页面的具体信息
  • 在此之前我们需要先创建一个文件夹,用来保存获取到的新闻信息(注意,必须使用标准格式写法,否则会出错)
    1522559-20190413113915238-773787144.png

  • 爬取详情页的数据依然使用re模块获取所有的新闻信息
  • 如图所示,我们注意到所有的新闻信息均在一个< p >标签下,所以使用re.findall来获取
    1522559-20190413114032868-1584811996.png

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

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

  • 有一个特别需要注意的就是\u3000这个,这是一个是全角的空白符,但是我看了下网上的替换方式均有误,网上的写法 str.replace(u'\xa0', u' ')
  • 我测试后发现这个写法是有错误的,我们只需要进行字符转义即可 new_body = new_body.replace("\u3000", '')

  • 然后就是我们的文件保存
  • 文件的名字在之前的new_title中,但是我们还需要构造一个索引,所以我们定义一个num去取标题索引,传入标题和新闻内容,每次所以加+1
  • 保存文件代码
    1522559-20190413114136377-172589724.png

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

  • 附上一张最后的成果图
    1522559-20190413114153885-34045483.png

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

转载于:https://www.cnblogs.com/ajinwu/p/10700475.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值