我正在尝试从使用名为Newspaper的python库生成的一组链接中进行解析。
解析新闻网站主页(或特定页面,例如类别)中的每个链接。
import newspaper
from newspaper import Article
nyt_paper = newspaper.build(
'http://nytimes.com/section/todayspaper', memoize_articles=False)
print(nyt_paper.size())
processed_link_list = []
for article_link in nyt_paper.articles:
article = Article(url=article_link)
article.download()
article.html
article.parse()
print(article.authors)
processed_link_list.append(article_link)
if len(nyt_paper.size()) is len(processed_link_list):
print('All Links Processed')
else:
print('All Links **NOT** Processed')
Traceback (most recent call last):
File "nyt_today.py", line 31, in <module>
article = Article(url=article_link)
File "C:\...\lib\site-packages\newspaper\article.py", line 60, in __init__
scheme = urls.get_scheme(url)
File "C:\...\lib\site-packages\newspaper\urls.py", line 279, in get_scheme
return urlparse(abs_url, **kwargs).scheme
File "C:\...\lib\urllib\parse.py", line 367, in urlparse
url, scheme, _coerce_result = _coerce_args(url, scheme)
File "C:\...\lib\urllib\parse.py", line 123, in _coerce_args
return _decode_args(args) + (_encode_result,)
File "C:\...\lib\urllib\parse.py", line 107, in _decode_args
return tuple(x.decode(encoding, errors) if x else '' for x in args)
File "C:\...\lib\urllib\parse.py", line 107, in <genexpr>
return tuple(x.decode(encoding, errors) if x else '' for x in args)
AttributeError: 'Article' object has no attribute 'decode'
from newspaper import Article
from newspaper import fulltext
import requests
nyt_url = 'https://www.nytimes.com/2019/02/26/opinion/trump-kim-vietnam.html'
article = Article(nyt_url)
article.download()
print(article.html)
article.parse()
print(article.authors)
print(article.text)
我还尝试了文档中示例的“全文”方法来打印文本:
article_html = requests.get(nyt_url).text
full_text = fulltext(article_html)
print(full_text)
但是,尽管整个文章文字输入到了
print(article.html)
print(article.text)
不能全部打印。原始链接HTML输出和打印文本输出可以在下面看到:
链接:https://www.nytimes.com/2019/02/26/opinion/trump-kim-vietnam.html
HTML输出:see this pastebin for truncated output
打印的文本:see this printed text does not print the entire article
任何帮助将不胜感激。
答案 0 :(得分:0)
自2014年以来,NYTimes更改了其内部html结构。如果您尝试解析2014年之前发布的文章,则Newspaper3K会很好用。
要考虑的其他事项:
“ \ n \ n新闻通讯继续阅读主要新闻订阅《今日意见》新闻通讯每个工作日,请获得Op-Ed专栏作家,《泰晤士报》编辑委员会和世界各地杰出撰稿人的发人深省的评论。请验证您不是通过单击该框进行操作的人。无效的电子邮件地址。请重新输入。您必须选择要订阅的新闻简报。注册您将收到包含《纽约时报》新闻内容,更新和促销的电子邮件。随时选择退出。您同意偶尔收到有关《纽约时报》产品和服务的更新和特别优惠。感谢您的订阅。发生了错误。请稍后重试。查看所有《纽约时报》新闻通讯。\ n \ n“
“ \ n \ n通讯录注册继续阅读主要故事请单击框确认您不是机器人。无效的电子邮件地址。请重新输入。您必须选择要订阅的通讯。注册您将收到来自《纽约时报》的包含新闻内容,更新和促销的电子邮件。您可以随时选择退出。您同意偶尔收到有关《纽约时报》产品和服务的更新和特别优惠。感谢您的订阅。发生。请稍后再试。查看所有《纽约时报》新闻通讯。\ n“
如果您可以接受1990年至2016年的数据,请检查本文使用的数据集:https://arxiv.org/abs/1703.00607,该数据集可在线获得。
如果您需要更新的文章,我想您应该编写自己的解析器。我正在努力,但还没有完成。