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

动机

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

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

简介

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