【发布时间】:2021-01-10 23:57:44
【问题描述】:
有一个 python 库 - Newspaper3k,它使获取网页内容变得更容易。 [newspaper][1]
用于标题检索:
import newspaper
a = Article(url)
print(a.title)
对于内容检索:
url = 'http://fox13now.com/2013/12/30/new-year-new-laws-obamacare-pot-guns-and-drones/'
article = Article(url)
article.text
我想获取有关网页的信息(有时是标题,有时是实际内容)有我的代码来获取网页的内容/文本:
from newspaper import Article
import nltk
nltk.download('punkt')
fil=open("laborURLsml2.csv","r")
# 3, below read every line in fil
Lines = fil.readlines()
for line in Lines:
print(line)
article = Article(line)
article.download()
article.html
article.parse()
print("[[[[[")
print(article.text)
print("]]]]]")
“laborURLsml2.csv”文件的内容是: [laborURLsml2.csv][2]
我的问题是:我的代码读取了第一个 URL 并打印了内容,但未能继续读取 2 个 URL
【问题讨论】:
-
您在处理第一个 url 时是否看到任何异常?
-
是的,抛出了这个异常:" raise ArticleException('Article
download()failed with %s on URL %s' % ArticleException: Articledownload()failed with 404 Client Error: Not Found for url : socialeurope.eu/… 在 URL socialeurope.eu/…" -
你能把完整的异常信息放上去吗?或者将
for循环的处理部分包装在try/except块中 -
是的,我将 for 循环包装在 try/except 块中。并将“laborURLsml2.csv”的所有网址放在一个列表中。有用。我认为 newsletter3k 库对 URL 末尾的“/”等特殊字符很敏感
-
@tursunWali news3k 对 URL 末尾的特殊字符“/”不敏感,但对 CSV 中的尾随空格很敏感。我在回答中用 .strip() 删除了它。在使用 Newspaper 时使用“USER_AGENT 和 timeout 也是一个好习惯。我注意到在提取文章文本时需要进行一些数据清理。
标签: python python-3.x web-scraping newspaper3k