宁为玉碎,不为瓦全
分类: Python/Ruby
2021-11-05 16:24:45
最近双十一活动正在疯狂的进行中,毕竟是一年一次的大促销,活动力度大,大家都等着这个活动薅羊毛呢。但是这个活动真的是让人又爱又恨呀,公司一直都有在获取京东的一些数据。在活动之前都还进行的挺顺利的,一开始活动后突然发现获取数据不行了,失败率一直在上升,这让我们就很头大了。失败率一升高,我们就以为是代理的原因,一直都是使用的亿牛云代理,还是加强版的一直都是比较给力的,直接找了商家,经过他们技术和我们的研究发现。不是代理的问题,是目标网站这段时间因为双十一活动升级了网站反爬机制,我们经过分析,又加入了最新的ua,cookie再升级了一些策略,效果有改善,但是和之前的成功率比较还是差点。
所以大家最近在获取电商网站的要是也遇到类似的情况可以好好分析下目标网站。这里分享一小段访问京东的代码,有需要的小伙伴可以参考学习下:
! -*- encoding:utf-8 -*- import requests import random # 要访问的目标页面 targetUrl = "" # 要访问的目标HTTPS页面 # targetUrl = "{}.html" # 代理服务器(产品官网 ) proxyHost = "t.16yun.cn" proxyPort = "31111" # 代理验证信息 proxyUser = "16EMKXLH" proxyPass = "531868" proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % { "host" : proxyHost, "port" : proxyPort, "user" : proxyUser, "pass" : proxyPass, } # 设置 http和https访问都是用HTTP代理 proxies = { "http" : proxyMeta, "https" : proxyMeta, } # 设置IP切换头 tunnel = random.randint(1,10000) headers = {"Proxy-Tunnel": str(tunnel)} resp = requests.get(targetUrl, proxies=proxies, headers=headers) print resp.status_code print resp.text
这个示例通用与其他的电商网站,有需要的可以分享学习下。