我有一个保存在.txt文件中的URL列表,我想一次一个地将它们提供给一个名为url
的变量,我将newspaper3k python库中的方法应用到该变量。该程序提取URL内容、文章作者、文本摘要等,然后将信息打印到一个新的.txt文件中。当你给它一个URL作为用户输入时,脚本运行得很好,但我应该怎么做才能从一个有数千个URL的.txt中读取呢?
我刚开始使用Python,事实上这是我的第一个脚本,所以我试着简单地说url = (myfile.txt)
,但我意识到这不起作用,因为我必须一次读取一行文件。因此,我尝试将read()
和readlines()
应用于它,但由于'str' object has no attribute 'read'
或'readlines'
,它无法正常工作。我应该用什么来读取保存在.txt文件中的URL,每个URL都以新行开头,作为我的简单脚本的输入?我应该将字符串转换为其他字符串吗?
从代码中提取,第1-18行:
from newspaper import Article
from newspaper import fulltext
import requests
url = input("Article URL: ")
a = Article(url, language='pt')
html = requests.get(url).text
text = fulltext(html)
download = a.download()
parse = a.parse()
nlp = a.nlp()
title = a.title
publish_date = a.publish_date
authors = a.authors
keywords = a.keywords
summary = a.summary
后来我构建了一些功能,以所需的格式显示信息,并将其保存到一个新的.txt文件中。我知道这是一个非常基本的功能,但我真的被卡住了。。。我在这里读过其他类似的问题,但我无法正确理解或应用这些建议。那么,从.txt文件中读取URL以便一次一个地将其提供给url
变量的最佳方法是什么?它们还可以应用于哪些其他方法来提取其内容?
这是我在这里的第一个问题,我知道论坛是针对更有经验的程序员的,但我真的很感谢一些帮助。如果我需要编辑或澄清这篇文章中的内容,请告诉我,我会立即更正。
这里有一种方法:
from newspaper import Article
from newspaper import fulltext
import requests
with open('myfile.txt',r) as f:
for line in f:
#do not forget to strip the trailing new line
url = line.rstrip("n")
a = Article(url, language='pt')
html = requests.get(url).text
text = fulltext(html)
download = a.download()
parse = a.parse()
nlp = a.nlp()
title = a.title
publish_date = a.publish_date
authors = a.authors
keywords = a.keywords
summary = a.summary
这可以帮助您:
url_file = open('myfile.txt','r')
for url in url_file.readlines():
print url
url_file.close()
您可以将其作为以下应用于您的代码
from newspaper import Article
from newspaper import fulltext
import requests
url_file = open('myfile.txt','r')
for url in url_file.readlines():
a = Article(url, language='pt')
html = requests.get(url).text
text = fulltext(html)
download = a.download()
parse = a.parse()
nlp = a.nlp()
title = a.title
publish_date = a.publish_date
authors = a.authors
keywords = a.keywords
summary = a.summary
url_file.close()