一、 前言
很多淘宝的用户发现在搜索某些商品的时候,淘宝会要求用户登录。这样就十分麻烦,因为用户需要先登录才能继续搜索。
下面将从多个方面讲解淘宝不登录不让搜索解决方法,并且给出对应的代码示例。
二、 修改URL链接
在淘宝搜索商品时,每个链接都会包含很多参数,其中一个参数为“islogin” 。我们可以尝试在URL链接里面添加这个参数以达到搜索不登录的目的。
https://s.taobao.com/search?q=xxx&islogin=false
其中xxx为搜索的商品名称。得到这个URL链接后,就能够实现不登录搜索商品。下面是完整的代码示例:
# 安装requests和bs4库 import requests from bs4 import BeautifulSoup headers = { "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"} url = "https://s.taobao.com/search?q=xxx&islogin=false" res = requests.get(url, headers=headers) soup = BeautifulSoup(res.text, 'html.parser') # 进行解析数据的代码
三、 使用无头浏览器
淘宝搜索页面的登录验证是通过JavaScript来实现的,因此我们可以使用selenium和无头浏览器模拟登录来破解。下面是完整的代码示例:
# 安装selenium,chromedriver库 from selenium import webdriver import time options = webdriver.ChromeOptions() options.add_argument('headless') options.add_argument('User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3') driver = webdriver.Chrome(chrome_options=options) driver.get('https://login.taobao.com/member/login.jhtml') time.sleep(1) # 输入用户名和密码登录 driver.find_element_by_id("TPL_username_1").send_keys("xxxxx") driver.find_element_by_id("TPL_password_1").send_keys("xxxxx") driver.find_element_by_id("J_SubmitStatic").click() # 等待直到登录成功 while True: try: driver.get('https://www.taobao.com/') text = driver.find_element_by_class_name('site-nav-login-info-nick').text print("登录成功用户名:", text) break except: pass # 进行搜索商品的代码
四、 使用Cookie绕过验证
淘宝的登录验证是通过Cookie实现的,因此我们可以通过在Cookie中添加一部分信息模拟登录状态。下面是完整的代码示例:
# 安装requests和bs4库 import requests from bs4 import BeautifulSoup url = 'https://s.taobao.com/search?q=xxx' # 添加登录后的cookie,其中"_m_h5_tk"和"_m_h5_tk_enc"为淘宝的加密参数,需要进行相应修改 headers = { 'cookie': '_m_h5_tk=xxx; _m_h5_tk_enc=xxxxxx; cookie2=xxxx; t=xxxxx'} res = requests.get(url, headers=headers) soup = BeautifulSoup(res.text, 'html.parser') # 进行解析数据的代码
五、 利用淘宝API
淘宝提供了多个API供开发者使用。其中有一个API为淘宝客API,可以实现搜索商品的功能。淘宝客API是服务于淘宝客推广者开发的API接口,支持联盟搜索、商品详情查询、商品转链、订单查询等多种功能。下面是完整的代码示例:
# 安装request和json库 import requests import json url = 'http://gw.api.taobao.com/router/rest' appkey = 'xxxxxxxxxx' # 淘宝的appkey secret = 'xxxxxxxxxx' # 淘宝的appsecret method = 'taobao.tbk.item.get' # API的方法名 # 具体参数请按照自己的需求进行修改 data = {'app_key': appkey, 'method': method, 'format': 'json', 'v': '2.0', 'sign_method': 'hmac', 'adzone_id': 'xxxx', 'cat': 'xxxx', 'keyword': 'xxx', 'page_no': '1', 'page_size': '10', 'sort': 'total_sales_des'} data['sign'] = get_sign(data, secret) # 获取签名 response = requests.get(url, params=data) response = json.loads(response.content) # 进行解析数据的代码
六、 结语
以上就是4种不登录搜索淘宝商品的方法,分别是修改URL链接、使用无头浏览器、使用cookie绕过验证和利用淘宝API。不同的方法适用于不同的场景,大家可以根据自己的需求进行选择使用。