在输出hi后,以下代码卡住了。您能检查一下这有什么问题吗?如果该站点是安全的,并且我需要一些特殊的身份验证?
from bs4 import BeautifulSoup
import requests
print('hi')
rooturl='http://www.hoovers.com/company-information/company-search.html'
r=requests.get(rooturl);
print('hi1')
soup=BeautifulSoup(r.content,"html.parser");
print('hi2')
print(soup)
最佳答案
无法从漂亮的汤中读取HTML页面
为什么会出现此问题,是因为网站认为您是机器人,他们不会向您发送任何信息。而且他们甚至挂断了连接,让您永远等待。
您只是模仿浏览器的请求,然后服务器会认为您不是机器人。
添加标题是解决此问题的最简单方法。但是有些事情你不应该只通过User-Agent
(像这次)。请记住复制浏览器的请求,并通过测试删除无用的元素。如果您懒惰,请直接使用浏览器的标题,但在上传文件时,请勿复制所有标题
from bs4 import BeautifulSoup
import requests
rooturl='http://www.hoovers.com/company-information/company-search.html'
with requests.Session() as se:
se.headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
"Accept-Encoding": "gzip, deflate",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"Accept-Language": "en"
}
resp = se.get(rooturl)
print(resp.content)
soup = BeautifulSoup(resp.content,"html.parser")
关于python - 无法从漂亮的汤中读取HTML页面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53782607/