【问题标题】:boilerpy3 returns HTTP Error 403: Forbidden锅炉py3返回HTTP错误403:禁止
【发布时间】:2020-11-20 16:24:01
【问题描述】:
在使用提取器的 BoilerPy3 中,在某些网站上我收到“HTTP 错误 403:禁止访问”。查看代码,它看起来像调用 urllib 并且只会获取没有标题的 url。我该如何解决这个问题?
也许有人可以创建一个“boilerpy”标签?
from boilerpy3 import extractors
extractor = extractors.ArticleExtractor()
url = 'https://www.enca.com/south-africa/benghazi-hospital-security-tightened-following-car-bombing'
try:
doc = extractor.get_doc_from_url(url)
except HTTPError as e:
print (e)
【问题讨论】:
标签:
python
web-scraping
http-error
【解决方案1】:
与其尝试修改 urllib 调用,不如自己处理请求更容易,例如使用requests 库,然后使用结果调用BoilerPy3。例如:
import requests
from boilerpy3 import extractors
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/50.0.2661.102 Safari/537.36'
}
url = 'https://www.enca.com/south-africa/benghazi-hospital-security-tightened-following-car-bombing'
extractor = extractors.ArticleExtractor()
resp = requests.get(url, headers=headers)
if resp.ok:
doc = extractor.get_content(resp.text)
else:
raise Exception(f'Failed to get URL: {resp.status_code}')
这应该会按预期为您提供文本。