【AMAD】newspaper -- 爬取/提取新闻网页中的文本,元数据

博客围绕通用型新闻网页爬虫库展开,探讨能否用通用方法提取新闻网页数据。介绍该库受简单性 API 启发提升提取速度,分析其源码结构复杂。同时指出局限性,如提取规则仅适用于英文网站,需网站 HTML 语义有效。

动机

新闻网页,结构大多是类似的。

所以,能不能用一种通用的爬取方法来提取其中的数据?

简介

Newspapaer1受到requests那种简单性API的启发,通过lxml来提升提取数据的速度。

用法

>>> from newspaper import Article

>>> url = 'http://fox13now.com/2013/12/30/new-year-new-laws-obamacare-pot-guns-and-drones/'
>>> article = Article(url)
>>> article.download()

>>> article.html
'<!DOCTYPE HTML><html itemscope itemtype="http://...'

>>> article.parse()

>>> article.authors
['Leigh Ann Caldwell', 'John Honway']

>>> article.publish_date
datetime.datetime(2013, 12, 30, 0, 0)

>>> article.text
'Washington (CNN) -- Not everyone subscribes to a New Year's resolution...'

>>> article.top_image
'http://someCDN.com/blah/blah/blah/file.png'

>>> article.movies
['http://youtube.com/path/to/link.com', ...]

源码分析

通用型爬虫一直是一个难以解决的问题。这个库看起来简单,其实源码结构非常复杂,还有nlp的支持。

不过,它其实也不是那么万能:

  • 首先这些提取规则只对英文类网站有效。extractors.py文件中,get_authors()方法首先会看页面有没有By (?P<author>...)字样,这显然只适合英文语法。
  • 网站本身的HTML语义必须有效,否则很多提取都会失败。extractors.py提取很多数据,都是通过HTML元素的attr或者elem name本身来判断的,那些陈旧的网站或者React SPA这种网站,是没有效果的.

个人评分

类型评分
实用性⭐️⭐️
易用性⭐️⭐️⭐️⭐️
有趣性⭐️⭐️⭐️⭐️

转载于:https://www.cnblogs.com/thomaszdxsn/p/amadnewspaper--pa-quti-qu-xin-wen-wang-ye-zhong-de.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值