为什么我按照书上这样敲的代码,但是还是404报错啊
(似乎我的代码从html中出现了{% xxx %}开始就运行不出来了)
URL拼错了,URL你试试
http://127.0.0.1:8000/detail/2
拼错成了 datail
这个是请求页面还是接口,如果是页面,url需要填写路径和页面全名称。
这种情况是服务器同时返回200与404的状态码,抓包可以看到有404与200。浏览器访问时,有200不会影响访问,而爬虫程序获取该url的回执状态码404与200,遇到有404,则抛出了HTTP Error 404: Not Found
网上解答:抓包将状态码200的cookie值贴到代码的headers里,然后urlopen(req)过去就ok
我的方法:判断是404错误码的同时也判断页面含有关键词。
针对出现404错误的情况,可能的解决方案如下:
确认URL是否正确:404错误通常是由于请求的URL错误或者请求的页面不存在导致的,因此需要检查请求的URL是否正确,包括URL是否拼写正确、是否包含特殊字符等等。
检查请求头部信息:有些网站会对爬虫进行反爬虫处理,比如要求请求中包含特定的User-Agent等头部信息才能正常访问,因此可能需要检查请求头部信息是否正确。
检查请求频率:如果请求频率过高,可能会被网站服务器判定为恶意爬虫进行屏蔽,因此需要适当调整爬虫程序的请求频率。
使用代理IP:在进行爬虫的过程中,可能会被设定一些访问频率的限制,限制IP访问次数等措施,这些因素都可能影响到爬虫的正常访问。使用代理IP可以很好地规避这些问题,提高爬虫的可用性。
如果以上方法都不能解决404错误的问题,可能需要进一步分析代码,检查是否有其他问题导致。