爬蟲中手動輸入驗證碼方法無法獲取圖片src地址
阿新 • • 發佈:2021-01-11
爬蟲中手動輸入驗證碼方法無法獲取圖片src地址
以登陸人民郵電出版社為例:https://www.ptpress.com.cn/login
驗證碼在html中圖片標籤內容:
<class=“verCodeImg” src="/kaptcha.jpg?v=0.234724039578059" οnclick=“verCode(this)”>
< class=“verCodeImg” src="/kaptcha.jpg?v=0.234724239578059" οnclick=“verCode(this)”>
可知獲取到驗證碼的src地址就能動態的
import requests
from bs4 import BeautifulSoup
login_url = 'https://www.ptpress.com.cn/login'
req = requests.get(login_url)
#用bs4定位到元素
soup = BeautifulSoup(req.content,'lxml')
soup.select('#loginForm > div.row > div.col-md-4.col-sm-4.col-xs-4 > div > img')
但是執行後會發現它是沒有顯示src的
因為驗證碼是動態的!動態的!動態的!
用動態爬取網頁的方法:
要用到selenium庫
import requests
from selenium import webdriver
#通過動態解析獲得src
#selenium庫報錯[WinError 2] 系統找不到指定的檔案另一篇文章裡有些
path = 'G:/學習軟體/Python/Python/chromedriver.exe'
driver = webdriver.Chrome(path)
driver.get(login_url)
#定位到元素
search_src = driver.find_element_by_xpath('//*[@id="loginForm"]/div[3]/div[2]/div/img' )
#獲得元素的src屬性
code = search_src.get_attribute('src')
返回了src地址
但其實獲得了驗證碼的src地址,我還是沒能成功登陸
因為即使是相同的連結點進去,每一次重新整理都會有不同的驗證碼
通過動態網頁開啟是一張
解析src地址出來是另一張