Newspaper3k、用户代理和抓取

问题描述

我正在制作由新闻文章作者出版日期正文组成的文本文件我有执行此操作的代码,但我需要先让 Newspaper3k 从这些文章中识别相关信息。由于用户代理规范 has been一个问题 before,我还指定了用户代理。这是我的代码,所以你可以跟着做。这是 Python 的 version 3.9.0

import time,os,random,nltk,newspaper 

from newspaper import Article,Config

user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/91.0.4472.124  Safari/537.36'

config = Config()
config.browser_user_agent = user_agent

url = 'https://www.eluniversal.com.mx/estados/matan-3-policias-durante-ataque-en-nochistlan-zacatecas'
article = Article(url,config=config)
article.download()
#article.html #
article.parse()
article.nlp()

article.authors
article.publish_date
article.text 

为了更好地理解为什么这个案例特别令人费解,请将我上面提供的链接替换为这个链接,然后重新运行代码。使用 this link代码现在可以正确运行,返回作者、日期和文本。使用上面代码中的链接,它没有。我在这里俯瞰什么?

解决方法

显然,报纸要求我们指定我们感兴趣的语言。这里的代码仍然由于某种奇怪的原因没有提取作者,但这对我来说已经足够了。这是代码,如果其他人会从中受益。


#
# Imports our modules
#

import time,os,random,nltk,newspaper
from newspaper import Article
from googletrans import Translator
translator = Translator()

# The link we're interested in

url = 'https://www.eluniversal.com.mx/estados/matan-3-policias-durante-ataque-en-nochistlan-zacatecas'


#
# Extracts the meta-data
#

article = Article(url,language='es')
article.download()
article.parse()
article.nlp()

#
# Makes these into strings so they'll get into the list
#

authors = str(article.authors)
date = str(article.publish_date)
maintext = translator.translate(article.summary).text


# Makes the list we'll append

elements = [authors+ "\n",date+ "\n",maintext+ "\n",url]

for x in elements:
    print(x)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...