洗礼灵魂,修炼python(69)--爬虫篇—番外篇之feedparser模块

feedparser模块

1.简介

feedparser是一个Python的Feed解析库,可以处理RSS ,CDF,Atom 。使用它我们可从任何 RSS 或 Atom 订阅源得到标题、链接和文章的条目了。


RSS(Really Simple Syndication,简易信息聚合):是一种描述和同步网站内容的格式你可以认为是一种定制个性化推送信息的服务。RSS 是用于分发 Web 站点上的内容的摘要的一种简单的 XML 格式它能够解决你漫无目的的浏览网页的问题。它的信息越是过剩,它的意义也越加彰显。网络中充斥着大量的信息垃圾,每天摄入了太多自己根本不关心的信息。让自己关注的信息主动来找自己,且这些信息都是用户自己所需要的,这就是RSS的意义

比如这个链接:http://feed.cnblogs.com/blog/sitehome/rss

 

打开得:

 

其实点个人博客主页的这里也可以:

 

 

 

不过点击去是个人的rss,里面全是个人的随笔或者文章:

 

2.方法/属性

feedparser是第三方库,需要pip或者easy_install安装,这些略过了

 

 

3.常用方法/属性解析

其他的方法都不用说了,基本上没用到,最常用的就是parse方法了

 

1
2
import feedparser
print(feedparser.parse('http://feed.cnblogs.com/blog/u/385429/rss'))

 

 结果:

这样就把一些数据拿到了,标题,摘要,url地址全有了,相信你学到这里了,这些参数你基本上能看懂了

 

每个 RSS 和 Atom 订阅源都包含一个标题(.feed.title)

 

也可以通过属性访问:

 

还有authors作者以及主页等

 

 

 还有一组文章条目(.entries)

 

 

每个文章条目都有一段摘要(.entries[i].summary)

 

 

或者是包含了条目中实际文本的描述性标签(.entries[i].description)

 

 

还有很多很多,只要对象feedparser.parse(url)里面有的,基本都可以访问,根据实际情况来就行

 

综合使用

  • 可以刷博客访问量
  • 爬取别人的博客文章(我之前那些被爬虫爬取的博客文章不出意外就是用的rss爬的)
  • ……

有朋友肯定想,我不用webbrowser和feedparser也可以爬取啊,是的,不过有了feedparser就多了一种办法啊,并且还不止干这些,你还可以结合上一篇的webbrowser模块一起使用:

1
2
3
4
5
6
7
8
9
10
11
12
13
import webbrowser,time,os,feedparser
browser_path = r'C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chrome.exe'
test = feedparser.parse('http://feed.cnblogs.com/blog/sitehome/rss')
blog_urls = [entry.id for entry in test.entries] #这是根据parse对象匹配出来的,根据实际情况匹配就行
 
count = 0
for url in blog_urls: #个人建议,已经有for循环用来迭代url了,不需要在用while,不然嵌套太多层,不利于优化
    webbrowser.register('chrome',None,webbrowser.BackgroundBrowser(browser_path))
    webbrowser.get('chrome').open_new_tab(url)
    count += 1
    time.sleep(3)
    if not count%5: #注意这里的if not,很巧妙,可以实现每打开五个标签就关闭,再次重新打开,直到for循环结束
        os.system('taskkill /F /IM chrome.exe')

 

同样的,不方便展示效果,自己复制代码下去测试体验吧,还是那句话,没必要去刷博客访问量,没意思。

另外同样的,不要一直去测试运行代码,别把博客园服务器搞崩了,这样就太不好了

 

声明:本篇博文只是作为python学术研究和知识分享,并不会对博客园进行任何恶意的攻击等等操作,也永远不会这么做,也请各位看客不要这么做。以及对文中涉及到的博客文章原作者表示谢意和歉意,并不是有意拿你们的文章做实验对象,只是在这里做测试,也并没有爬取您们辛苦码好的文章,也永远不会这么做,也请各位看客不要这么做,尊重作者,尊重原创

posted @   Eeyhan  阅读(449)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示