
爬取URL文本状态码200,局部404啊咋整!浏览器访问显示完整文本,python进去就不行!
晚上好🌙🌙🌙
本答案参考ChatGPT-3.5
针对Python爬取URL文本状态码200,但局部出现404的情况,常见解决方案如下:
修改请求头信息:有些网站会对爬虫进行限制,因此可以通过修改请求头信息来模拟浏览器,以避免被封禁或限制。
添加Cookie:某些网站需要登录后才能访问,需要利用Cookie模拟登录状态。在Python中可以使用requests库的session对象来添加Cookie信息。
使用代理IP:通过使用代理IP轮流访问目标网站,以避免IP被封禁。
添加重试机制:在遇到局部404时,可以通过添加重试机制来重新访问该页面,以获取完整的文本信息。
修改后的Python代码示例:
import requests
url = "https://example.com/page"
# 设置请求头信息和Cookie
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3",
"Cookie": "name=value"
}
# 添加代理IP
proxies = {"http": "http://127.0.0.1:1080", "https": "https://127.0.0.1:1080"}
# 添加重试机制
retry_times = 3
count = 0
while count < retry_times:
try:
response = requests.get(url, headers=headers, proxies=proxies)
if response.status_code == 200:
# 提取文本信息
text = response.text
print(text)
break
elif response.status_code == 404:
# 页面不存在,抛出异常
raise requests.exceptions.RequestException
except requests.exceptions.RequestException as e:
count += 1
if count >= retry_times:
print("访问页面失败!")
注意:以上解决方案仅供参考,具体需要根据实际情况选择合适的处理方式。另外,爬虫应当遵守网站的相关规定和法律法规。