一、 前言
很多淘寶的用戶發現在搜索某些商品的時候,淘寶會要求用戶登錄。這樣就十分麻煩,因為用戶需要先登錄才能繼續搜索。
下面將從多個方面講解淘寶不登錄不讓搜索解決方法,並且給出對應的代碼示例。
二、 修改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。不同的方法適用於不同的場景,大家可以根據自己的需求進行選擇使用。
原創文章,作者:SZSRM,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/332959.html