來源:北大青鳥總部 2019年12月12日 11:26
淘寶登錄是爬蟲的一個老大難的問題,因為淘寶有那么一群人專門針對爬蟲客們下足了功夫,無論你是selenium模擬點擊登錄,還是利用cookies登錄,都會被識別出來,驗證碼驗證始終通過不了,其后臺可能采取了有些機器學(xué)習(xí)的識別手段。
那么我們又有這個需要去登錄淘寶然后獲取數(shù)據(jù),該怎么做呢???
下面給出四種解決方案:
1.手動掃碼登錄
既然模擬登錄做不了,selenium也會被識別出來,那就手動掃碼登錄吧,使用selenium打開淘寶登錄頁面,再手機打開千牛app掃碼登錄,方便快捷,永遠不怕反爬。代碼如下:
# -*- encoding: utf-8 -*-
from selenium import webdriver
import time
def login():
"""login"""
loginURL = 'https://login.taobao.com/member/login.jhtml'
browser = webdriver.Chrome()
browser.maximize_window()
browser.get(loginURL)
print('\nPlease scan code...')
time.sleep(10)
browser.get('https://zizhanghao.taobao.com/subaccount/monitor/chat_record_query.htm') # 進入賣家中心
return browser
login()
2.微博登錄
淘寶對微博登錄的限制較小,可以實現(xiàn)自動登錄,前提是需要綁定微博。代碼如下:
# -*- encoding: utf-8 -*-
import time
from selenium import webdriver
import numpy as np
url = 'https://login.taobao.com/member/login.jhtml'
driver = webdriver.Chrome()
driver.get(url)
driver.maximize_window()
time.sleep(np.random.randint(1, 3))
change = driver.find_element_by_id('J_Quick2Static')
time.sleep(np.random.randint(1, 3))
change.click()
weibo = driver.find_element_by_class_name('weibo-login')
time.sleep(np.random.randint(1, 3))
weibo.click()
time.sleep(np.random.randint(1, 3))
name = driver.find_element_by_name('username')
name.send_keys('xxxxxx') # 微博賬號
time.sleep(np.random.randint(1, 3))
passwd = driver.find_element_by_name('password')
passwd.send_keys('xxxxxx') # 微博密碼
time.sleep(np.random.randint(1, 3))
submit = driver.find_element_by_class_name('W_btn_g')
submit.click()
不排除頻繁登錄跳出驗證碼的情況,可能就需要識別驗證碼了,所以需要限制登錄次數(shù),或更換IP。
3.使用模擬器登錄
親測可用,運行良好。
4.PC端模擬登錄
親測可用,運行良好。
————————————————
版權(quán)聲明:本文為CSDN博主「小爬蟲捕獲儂的小心心哇」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_39498924/article/details/103458074