从表面上看,Python爬虫程序运行中出现503错误是服务器的问题,其实真正的原因在程序,由于Python脚本运行过程中读取的速度太快,明显是自动读取而不是人工查询读取,这时服务器为了节省资源就会给Python脚本反馈回503错误。其实只要把爬取的速度放慢一点就好了。比如读取一条记录或几条记录后适当添加上time.sleep(10),这样就基本上不会出现503错误了。我本人在使用中一般是在每一次读取后都运行time.sleep(1)或time.sleep(3),具体的数值根据不同的网站确定。
这个有主要有两种可能:
你生成的url不正确,这个你可以打印一下,找一个报503的url直接在url里访问,看看是否有问题。
亚马逊判断出你是爬虫,给禁止返回数据了,这个就需要伪装一下你的爬虫,比如修改爬取间隔,随机使用http header,或者使用代理ip。
如果解决了您的问题请采纳!
如果未解决请继续追问
自己做个代理服务器。例如618爬虫代理,再指向次一级代理。或者是直接让爬虫通过http proxy的参数设置去先把一个代理。 代理池通常是租来的,或者是扫描出来的。扫描出来的往往大部分都不可用。 爬虫的实现有几百种方案。通常建议直接从SCRAPY入手。
503表示服务器端出现错误,和你的代码无关;也有可能你爬取得 路径本身有问题
503可能是你的请求头有问题,不要问我为什么,我不知道原理,但是我遇见过错误,重写请求头