共计 1758 个字符,预计需要花费 5 分钟才能阅读完成。
AliExpress 寰球速卖通,又称国际版淘宝,是一款面向海内的购物网站。
之前有获取过 Amazon 的信息,偶然间发现了这个网站,所以明天看看这个国际版淘宝下面有没有我想要的货色。
不晓得这下面能不能买到原价的 XboxSerisX 呢?
网站剖析
为了找到下面有没有原价的 Xbox,首先在首页,搜一下 PS5,再查看一下申请:
嗯,很直白的 get 申请,所有的参数链接上都写得清清楚楚。上面尝试一下翻页。
点击下一页之后呢,Doc 选项卡没有任何变动,那就再 XHR 选项卡找,果然找到了翻页的申请:
简化下链接,把一堆宜人的数字参数去掉之后,把链接拿进去独自申请:
完满的触发了验证滑块。
那我无妨换个思路,间接申请地址栏的链接,不去申请他的 api 接口呢?后果是能够的,扭转一下 page 参数就能够了:
1.url = f'https://www.aliexpress.com/wholesale?trafficChannel=main&d=y&CatId=0&SearchText={word}<ype=wholesale&SortType=default&page={page}'
开始申请
个别的 Get 申请即可:
1.def get_res(word):
2. url = f'https://www.aliexpress.com/wholesale?trafficChannel=main&d=y&CatId=0&SearchText={word}<ype=wholesale&SortType=default&page={page}'
3. res = requests.get(url, headers=self.headers,timeout=10)
4. if res.status_code == 200:
5. content = res.content.decode('utf-8')
查看返回值,他的内容是 js 加载的:
从下面的 content 变量里,用 re 正则表达式获取其中的内容,转化成 json 字符串:
1.content = res.content.decode('utf-8')
2.info = re.findall("window.runParams = (\{.*\})",content)[-1]
3.info = info.replace('false','False').replace('true','True')
4.datas = eval(info)['mods']['itemList']['content']
如何从那么乌七八糟的货色疾速找到咱们想要的货色呢?json 格式化啊!百度 json 格式化,简单的 json 也能一层一层剥开他的心(要把单引号替换成双引号哦):
这样咱们就能疾速找到咱们想要的内容了,我只有 title 和 url 就能够了,反正能够自定义,管他呢。
代理设置
方才也看到了,滑块验证不晓得什么时候就呈现了。如果想顺利的获取想要的数据,高效稳固的代理必定是少不了的。
我这里呢应用的是 ipidea 的代理,新用户能够白嫖流量,成果好不好无妨能够试试
地址:http://www.ipidea.net/
自己亲测高并发下成功率可不低的哦。
本次应用的是 ipidea 的账密代理形式;
设置好帐号信息,将账密的链接当成代理信息传进去就能够了:
1.entry = '账密链接'
2.proxy = {
3. 'http': entry,
4. 'https': entry,
5.}
6.url = f'https://www.aliexpress.com/wholesale?trafficChannel=main&d=y&CatId=0&SearchText={word}<ype=wholesale&SortType=default&page={page}'
7.res = requests.get(url,headers=headers, proxies=proxy)
8.if res.status_code == 200:
9. content = res.content.decode('utf-8')
残缺代码