如何用requests库实现无代理修改请求定位(替代浏览器/Selenium)
解决方法
复制浏览器的完整请求头与Cookie
AliExpress会通过Cookie、请求头信息辅助判断地域,仅靠URL参数_randl_shipto=DZ可能不生效。打开浏览器访问目标URL,按F12打开开发者工具→网络面板,找到该商品页的请求,复制完整的请求头(至少包含User-Agent、Accept-Language)和Cookie(包含地域相关标识,比如aep_usuc_f)。在requests会话中注入请求头与Cookie
用会话保存这些标识,确保请求和浏览器环境一致,示例代码:
import requests session = requests.Session() # 替换为从浏览器复制的请求头 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36', 'Accept-Language': 'fr-FR,fr;q=0.9', 'Referer': 'https://www.aliexpress.com/' } session.headers.update(headers) # 替换为从浏览器复制的Cookie键值对 cookies = { 'aep_usuc_f': 'site=dz&c_tp=fr', 'xman_us_f': 'x_l=1' } for k, v in cookies.items(): session.cookies.set(k, v) # 发起请求 target_url = 'https://www.aliexpress.com/item/1005004753962000.html?sourceType=620&_randl_shipto=DZ&gatewayAdapt=4itemAdapt' resp = session.get(target_url) # 可通过检查响应内容里的配送地址、货币等信息验证是否生效 print(resp.status_code)
- 处理可能的重定向或参数失效
如果请求被重定向,可添加allow_redirects=False查看跳转后的URL是否保留了_randl_shipto参数;若Cookie过期,重新从浏览器获取最新Cookie即可。
内容的提问来源于stack exchange,提问作者win_ter
相关产品推荐
相关产品推荐

