在Python中抓取Edmunds.com网站时,如何处理读取超时错误?
我正在尝试一个网络抓取的初学者,尝试从我的研究中抓取客户评论 但是,即使是基本代码也只给出读取超时错误在Python中抓取Edmunds.com网站时,如何处理读取超时错误?,python,error-handling,beautifulsoup,nlp,timeout,Python,Error Handling,Beautifulsoup,Nlp,Timeout,我正在尝试一个网络抓取的初学者,尝试从我的研究中抓取客户评论 但是,即使是基本代码也只给出读取超时错误 导入请求 从bs4导入BeautifulSoup 结果=请求。获取(“https://www.edmunds.com/") 打印(结果、状态和代码) 你能帮忙吗?这个网站有一些基本的防刮机制。特别是,它会检查您的“get”请求是否与来自浏览器的请求相似,并且有一个头。如果你想。。。请参阅下面的如何在请求中传递标准头 现在,我不会使用该网站来学习抓取——大部分内容看起来都是基于javascri
导入请求
从bs4导入BeautifulSoup
结果=请求。获取(“https://www.edmunds.com/")
打印(结果、状态和代码)
你能帮忙吗?这个网站有一些基本的防刮机制。特别是,它会检查您的“get”请求是否与来自浏览器的请求相似,并且有一个头。如果你想。。。请参阅下面的如何在请求中传递标准头 现在,我不会使用该网站来学习抓取——大部分内容看起来都是基于javascript构建的(还没有完全检查过+你需要根据目标页面进行评估)。如果你想刮取这个站点,你要么需要找到底层的API调用,要么需要更高级的工具,比如依赖浏览器的selenium
import requests
from bs4 import BeautifulSoup
header = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4040.128"
}
result = requests.get("https://www.edmunds.com/", headers=header, timeout=15)
print(result.status_code)
该网站有一些基本的防刮机制。特别是,它会检查您的“get”请求是否与来自浏览器的请求相似,并且有一个头。如果你想。。。请参阅下面的如何在请求中传递标准头 现在,我不会使用该网站来学习抓取——大部分内容看起来都是基于javascript构建的(还没有完全检查过+你需要根据目标页面进行评估)。如果你想刮取这个站点,你要么需要找到底层的API调用,要么需要更高级的工具,比如依赖浏览器的selenium
import requests
from bs4 import BeautifulSoup
header = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4040.128"
}
result = requests.get("https://www.edmunds.com/", headers=header, timeout=15)
print(result.status_code)
使用或向标题中添加用户代理
开始刮取之前,请参见使用
用户代理或将其添加到标题中
开始刮之前,请参见嗨,朱丽安娜,请先熟悉一下,然后再问下一个问题!祝你在这里过得愉快:)嗨,朱莉安娜,在你问下一个问题之前,请先熟悉一下!祝你在这里过得愉快:)谢谢你的回答。我试过使用header和request_html,但正如您所说的,由于反废弃机制,它不起作用。如何使用selenium解决这个问题?他们在2017年关闭了一个API。感谢您的回答。我试过使用header和request_html,但正如您所说的,由于反废弃机制,它不起作用。如何使用selenium解决这个问题?他们在2017年关闭了一个API。
import requests
headers = {
"User-Agent": "Mozilla/5.0"
}
result = requests.get(url="https://www.edmunds.com", headers=headers)
try:
status = result.status_code
print(status)
except Exception as e:
print(e)