一、 前言
很多淘寶的用戶發現在搜索某些商品的時候,淘寶會要求用戶登錄。這樣就十分麻煩,因為用戶需要先登錄才能繼續搜索。
下面將從多個方面講解淘寶不登錄不讓搜索解決方法,並且給出對應的代碼示例。
二、 修改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-hk/n/332959.html
微信掃一掃
支付寶掃一掃