大家好!
在對某些網(wǎng)站進行爬蟲時,如果該網(wǎng)站做了限制,必須完成登錄才能展示數(shù)據(jù),而且只能通過短信驗證碼才能登錄
這時候,我們可以通過一個已經(jīng)開啟的瀏覽器完成登錄,然后利用程序繼續(xù)操作這個瀏覽器,即可以完成數(shù)據(jù)的爬取了
具體操作步驟如下:
1-1 安裝依賴
# 安裝依賴
pip3 install selenium
1-2 Chrome 應(yīng)用完整路徑
右鍵查看 Chrome 瀏覽器的完整路徑
比如:C:\Program Files\Google\Chrome\Application\chrome.exe
1-3 命令行啟動瀏覽器
接下來,在 CMD 終端中通過命令行啟動 Chrome 瀏覽器
# 啟動瀏覽器
cd C:\Program Files\Google\Chrome\Application && chrome.exe --remote-debugging-port=1234 --user-data-dir=“C:\selenum\user_data”
其中
–remote-debugging-port
指定瀏覽器調(diào)試端口號
PS:這里可以隨機指定一個端口號,不要指定為已經(jīng)被占用的端口號
–user-data-dir
用戶配置文件目錄
這里需要單獨指定一個文件夾目錄(不存在會新建),如果不顯式指定該參數(shù),運行會污染瀏覽器默認的配置文件
1-4 下載 ChromeDriver
根據(jù) Chrome 瀏覽器版本下載對應(yīng)的 ChromeDriver 驅(qū)動移動到某一個目錄下
下載地址:
http://chromedriver.storage.googleapis.com/index.html
1-5 操作已打開的瀏覽器
假設(shè)上面開啟的瀏覽器打開百度首頁,我們現(xiàn)在編寫一個簡單的程序來繼續(xù)操作上面的瀏覽器
注意的是,這里需要利用 debuggerAddress 指定瀏覽器的地址及端口號
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
chrome_options = Options()
# 指定已經(jīng)打開瀏覽器的地址及端口號
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:1234")
# 注意:chrome版本與chromedirver驅(qū)動要保持一致
# 下載地址:http://chromedriver.storage.googleapis.com/index.html
s = Service(r"C:\Users\xingag\Desktop\111\chromedriver.exe")
driver = webdriver.Chrome(service=s, options=chrome_options)
# 操作瀏覽器
input_element = driver.find_element(By.ID, 'kw')
if input_element:
# 關(guān)鍵字
input_element.send_keys("AirPython")
submit_element = driver.find_element(By.ID, 'su')
if submit_element:
# 點擊搜索
submit_element.click()
# 釋放資源
# driver.close()
最后感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:文章來源:http://www.zghlxwxcb.cn/news/detail-704795.html
這些資料,對于【軟件測試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!???文章來源地址http://www.zghlxwxcb.cn/news/detail-704795.html
到了這里,關(guān)于如何利用 Selenium 對已打開的瀏覽器進行爬蟲的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!