1. 程式人生 > 其它 >爬蟲中手動輸入驗證碼方法無法獲取圖片src地址

爬蟲中手動輸入驗證碼方法無法獲取圖片src地址

技術標籤:定位python爬蟲

爬蟲中手動輸入驗證碼方法無法獲取圖片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地址出來是另一張