前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >不写 XPath,照样轻轻松松抓取大部分博客

不写 XPath,照样轻轻松松抓取大部分博客

作者头像
青南
发布2020-04-08 14:45:12
4620
发布2020-04-08 14:45:12
举报
文章被收录于专栏:未闻Code

摄影:产品经理

真正的水下长廊

有些同学喜欢写爬虫抓取网上的博客。他们可能会使用 requests 或者 Scrapy 访问目标博客,然后写 XPath 或者 CSS Selector 来提取博客的内容。

但实际上,对很多博客来说,根本不需要这么麻烦。因为这个世界上,还存在一个多年以前很流行,现在被很多人遗忘的东西——RSS。

以我的博客为例:https://www.kingname.info[1]。正常访问时显示如下:

但如果你在域名后面加上/atom.xml,你就会发现新大陆:

网站最近更新的文章,都在里面了。如果你使用inoreader 或者其他 RSS 工具订阅了这个地址,那么每次博客更新,你直接就能看到内容:

当然,我们不是给这些 RSS 软件打广告,所以我们今天讲讲如何使用 Python 解析 RSS。

RSS 或者 Atom的数据是以 XML 格式储存的,你可以直接使用 Python 的 XML 库来解析,或者使用现成的库,例如feedparser[2]运行效果如下图所示:

使用 pip 安装 feedparser 以后,读取 RSS 非常简单——填写网址、读取数据:

代码语言:javascript
复制
import feedparser


feed = feedparser.parse('https://www.kingname.info/atom.xml')
for article in feed.entries:
    print(article.title)

你可以使用article.xxx读取文章各个维度的数据,例如:

代码语言:javascript
复制
article.content   # 文章正文
article.link      # 文章 URL
article.published  # 文章发布时间
article.updated    # 文章更新时间

具体能查看哪个,可以根据 XML 文件中的标签来确定:

运行效果如下图所示:

参考资料

[1]https://www.kingname.info: https://www.kingname.info [2]feedparser: https://pythonhosted.org/feedparser/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 未闻Code 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档