我试图从使用名为python library生成的一组链接中解析
目标:
解析新闻网站的主页(或特定页面)的每个链接。
问题:
- 我在尝试将"文章_link"传递到" Article()"方法中时会生成一个属性。
- 使用单独的代码来解析"纽约时报"中的单个链接,文本打印的文本并未打印整个文章。
代码生成问题1:
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:...libsite-packagesnewspaperarticle.py", line 60, in __init__
scheme = urls.get_scheme(url)
File "C:...libsite-packagesnewspaperurls.py", line 279, in get_scheme
return urlparse(abs_url, **kwargs).scheme
File "C:...liburllibparse.py", line 367, in urlparse
url, scheme, _coerce_result = _coerce_args(url, scheme)
File "C:...liburllibparse.py", line 123, in _coerce_args
return _decode_args(args) + (_encode_result,)
File "C:...liburllibparse.py", line 107, in _decode_args
return tuple(x.decode(encoding, errors) if x else '' for x in args)
File "C:...liburllibparse.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'
代码生成问题2:
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)
我还尝试了在文档中检查的这种" fullText"方法来打印文本:
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输出:有关截短的输出
,请参见此糊剂印刷文本:请参阅此印刷文本未打印整个文章
任何帮助都将不胜感激。
nytimes自2014年以来改变了它的内部HTML结构。如果您尝试在2014年之前发表文章,Debind 3k将正常工作。
其他要考虑的事情:
- 1980年的文章不可用。
- 1970年之前的文章没有数字化(1964年除外)。
- 1970- 1979年的文章在中间有很多单词。
- 如果您使用dequiend3k解析,几篇文章将仅包含" nytimes.com不再支持Internet Explorer 9或更早。请升级您的浏览器。"
- 很多文章将在中间插入以下文本:
" n nnnewsletter注册继续阅读主要故事,每个工作日注册"今日新闻通讯",获取专栏文章的发人深省的评论,《时报》编辑委员会,《泰晤士报》编辑委员会以及来自世界各地的贡献者。请验证单击框,您不是机器人。无效的电子邮件地址。请重新输入。您必须选择一个新闻通讯。注册您将收到包含《纽约时报》的新闻内容,更新和促销的电子邮件。您可以随时选择退出。您同意偶尔收到《纽约时报》产品和服务的特别优惠。谢谢您的订阅。发生了错误。请稍后再试。查看所有纽约时报新闻通讯。 n n"
" n nnnewsletter注册继续阅读主要故事,请单击框来验证您不是机器人。无效的电子邮件地址。请重新输入。您必须选择一个新闻通讯来订阅。注册您将接收包含新闻内容,更新和促销的电子邮件。发生。请稍后再试。查看所有纽约时报新闻通讯。 n"
- 大多数博客(博客出现在2010年)也将插入不希望的文本。
如果您可以使用1990年至2016年的数据,请检查本文中使用的数据集:https://arxiv.org/abs/1703.00607可以在线提供。
如果您需要更新的文章,我应该写自己的解析器。我正在研究它,但我还没有完成。