HTTP状态码504一般是使用了代理服务器和代理IP造成的,或者是请求不到数据返回的。(俗称封代理ip)
解决方案:
对于使用爬虫代理出现504之类的状态码,少量504是正常现象,如果是大量的504,建议爬虫用户需要优化一下爬虫策略,降低一下访问频率,优化一下UA和COOKIE,和分析网站的反爬机制做相关具体优化。相关优化做完之后更换高质量亿牛云爬虫代理可测试效果。
COOKIE优化:
COOKIE最好是登陆获取的。使用cookie登陆,服务器会认为你是一个已登陆的用户,所以就会返回给你一个已登陆的内容。因此,需要验证码的情况可以使用带验证码登陆的cookie解决。
UA优化:
User-Agent可以用亿牛云提供给的真实库。
使用爬虫代理:
使用代理后控制访问频率,避免网站限制IP。
#! -*- encoding:utf-8 -*- from urllib import request # 要访问的目标页面 targetUrl = "http://httpbin.org/ip" # 代理服务器(产品官网 www.16yun.cn) proxyHost = "t.16yun.cn" proxyPort = "31111" # 代理验证信息 proxyUser = "username" proxyPass = "password" proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % { "host" : proxyHost, "port" : proxyPort, "user" : proxyUser, "pass" : proxyPass, } proxy_handler = request.ProxyHandler({ "http" : proxyMeta, "https" : proxyMeta, }) opener = request.build_opener(proxy_handler) request.install_opener(opener) resp = request.urlopen(targetUrl).read() print (resp)
任何爬虫采集数据都需要做爬虫的优化。每个网站都会反爬机制,使用亿牛云爬虫代理虽然很重要,但是爬虫的相关优化也固然重要,相互配合才能达到最稳定的采集效果。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/53494.html