本人是一名爬蟲小白正在學習爬蟲,如果你也是剛入門推薦你看下崔慶才老師寫的《python3網絡爬蟲開發實踐》,在爬去淘寶的過程中臨近雙十一發現如果你用selenium爬取信息的時候在搜索框搜索的時候會提示跳轉登錄界面。
由於跳不過這個環節博主就想了用selenium去破解於是就開始一步一步的傻瓜式操作來實現自動登錄,在登錄的過程中發現在自動登錄是時候需要破解滑動驗證碼,博主研究好久以及網上帖子找了好多也沒有辦法成功,后來就想着如果這個路走不了我們能不能換個路經過研究發現可以采取第三方登錄的方式就可以跳過這個滑動模塊,我們要講的是通過微博來登錄淘寶。
第一步、首先定位元素定位到微博登錄的元素。
第二步,點擊微博登錄看一下跳轉的頁面,這個時候我們去利用selenium來實現自動登錄就可以跳過淘寶的滑動驗證碼了。
下面是我跳轉登錄寫的代碼,看着有點復雜。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
import time
broswer = webdriver.Chrome()
wait = WebDriverWait(broswer,10)
def get_url():
#網址可以更改為用微博登錄的網址'https://weibo.com/login.php?spm=a2107.1.0.0.337911d9Xjeo8U&entry=taobao&goto=https%3A%2F%2Flogin.taobao.com%2Faso%2Ftvs%3Fdomain%3Dweibo%26sid%3De14b81726a49329b0db026af4eff8357%26target%3D68747470733A2F2F7777772E7461'
url = 'https://login.taobao.com/member/login.jhtml?spm=a21bo.2017.754894437.1.5af911d9l2Cj72&f=top&redirectURL=https%3A%2F%2Fwww.taobao.com%2F'
#您已經將網址更改微博登錄網址可以省略這步直接用輸入用戶名密碼階段。
button_login = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'#J_QRCodeLogin > div.login-links > a.forget-pwd.J_Quick2Static'))
button_login.click()
time.sleep(2)
button_login1 = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'#J_OtherLogin > a.weibo-login')))
button_login1.click()
EMAIL = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'#pl_login_logged > div > div:nth-child(2) > div > input')))
EMAIL.send_keys('用戶名')
PASSWD = wait.until((EC.presence_of_element_located((By.CSS_SELECTOR,'#pl_login_logged > div > div:nth-child(3) > div > input'))))
PASSWD.send_keys('密碼')
time.sleep(3)
button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,'#pl_login_logged > div > div:nth-child(7) > div:nth-child(1) > a > span')))
button.click()
if __name__ == '__main__':
get_url()
由於本人在初學階段,接下來此博客來紀念我的爬蟲之旅,歡迎大家共同學習一起進步,以后再爬蟲中遇到的問題以及解決方法都會在此博客進行記錄。