python3?chromedrivers簽到的簡單實現(xiàn)
爬蟲一般是useragent,或者js腳本交互驗算的方式來反機(jī)器人爬蟲,只是很多反爬蟲容易被偵測出來容易被攔截,這里有個思路可以用webdrivers來驅(qū)動瀏覽器去爬蟲,這樣就可以繞過大多數(shù)的防爬機(jī)制(有些高級的防反爬蟲也不行,比如驗證碼,鼠標(biāo)軌跡驗證等技術(shù)這樣chromedriver就不管用了)
用chrome瀏覽器舉例
第一下載安裝chrome瀏覽器并查明版本號。
┌──(kali?kali)-[~]
└─$ apt-get install google-chrome-stable
然后照著瀏覽器去下載相應(yīng)的chromedriver
下載地址:CNPM Binaries Mirror
下載后解壓,將里面的chromedriver 復(fù)制到/usr/bin/ 目錄下面(pach環(huán)境變量里面)即可
下面開始寫腳本
from time import sleep import os from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.keys import Keys option = webdriver.ChromeOptions() #設(shè)置chrome的瀏覽器選項 option.add_argument('--headless') #設(shè)施chrome選項為無窗口運行 driver = webdriver.Chrome(chrome_options=option) # 創(chuàng)建一個chrome瀏覽器,應(yīng)用無窗口的配置。 driver.get("http://www.jsons.cn/ping/") #用chrome去訪問網(wǎng)頁 WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'txt_url'))) #讓chrome顯式等待driver這個對象,并最多等待10秒,當(dāng)界面出現(xiàn)'txt_url'這個元素后在繼續(xù)往下 driver.find_element(By.XPATH, '//*[@id="txt_url"]').send_keys('ss111d.yqw5ey.dnslog.cn') #再出現(xiàn)//*[@id="txt_url"]這個元素后往這個元素里面填入ss111d.yqw5ey.dnslog.cn這個數(shù)值 driver.find_element(By.XPATH, '//*[@id="startbtn"]').click() #然后找到//*[@id="startbtn"] 這個按鈕模擬點擊它 sleep(1) #等待一秒后退出
find_element(By.XPATH, '//*[@id="txt_url"]') 這個元素怎么來的?如下:
總的來說這個腳本就是用chrome 打開這個網(wǎng)站,然后輸入這個dnslog的網(wǎng)址去ping一下。模仿人點擊去測試網(wǎng)頁
結(jié)果
其他:
下拉菜單如何選擇?
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import Select # 創(chuàng)建一個 WebDriver 實例 driver = webdriver.Chrome() # 訪問網(wǎng)頁 driver.get("https://example.com") # 選擇下拉框元素 select_box = driver.find_element(By.ID, "my_select_box") # 初始化 Select 類 select = Select(select_box) # 選擇一個選項 select.select_by_value("option_value") # 關(guān)閉 WebDriver 實例 driver.quit()
在最新版本的 Selenium Python 包中,推薦使用 find_element
方法的新形式,即指定查找方式的參數(shù) By,以及對應(yīng)的選擇器表達(dá)式,具體有以下幾種用法:
- 通過元素 ID 查找元素:find_element(By.ID, id_)
- 通過元素 name 查找元素:find_element(By.NAME, name)
- 通過元素 class name 查找元素:find_element(By.CLASS_NAME, name)
- 通過元素標(biāo)簽名查找元素:find_element(By.TAG_NAME, name)
- 通過元素鏈接文本查找元素:find_element(By.LINK_TEXT, text)
- 通過元素部分鏈接文本查找元素:find_element(By.PARTIAL_LINK_TEXT, text)
- 通過元素 CSS 選擇器查找元素:find_element(By.CSS_SELECTOR, css_selector)
- 通過元素 XPath 查找元素:find_element(By.XPATH, xpath)
到此這篇關(guān)于python3 chromedrivers簽到的簡單實現(xiàn)的文章就介紹到這了,更多相關(guān)python3 chromedrivers簽到內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python第三方庫undetected_chromedriver的使用
- python一招完美搞定Chromedriver的自動更新問題
- Python3爬蟲ChromeDriver的安裝實例
- 詳解Python+Selenium+ChromeDriver的配置和問題解決
- Selenium執(zhí)行完畢未關(guān)閉chromedriver/geckodriver進(jìn)程的解決辦法(java版+python版)
- python+selenium+chromedriver實現(xiàn)爬蟲示例代碼
- 下載與當(dāng)前Chrome對應(yīng)的chromedriver.exe(用于python+selenium)
- python selenium 執(zhí)行完畢關(guān)閉chromedriver進(jìn)程示例
相關(guān)文章
使用python框架Scrapy爬取數(shù)據(jù)的操作步驟
Scrapy是一個基于Python的強(qiáng)大的開源網(wǎng)絡(luò)爬蟲框架,用于從網(wǎng)站上抓取信息,它提供了廣泛的功能,使得爬取和分析數(shù)據(jù)變得相對容易,本文小編將給給大家介紹一下如何使用python框架Scrapy爬取數(shù)據(jù),需要的朋友可以參考下2023-10-10Python使用tkinter實現(xiàn)搖骰子小游戲功能的代碼
這篇文章主要介紹了Python使用tkinter實現(xiàn)的搖骰子小游戲功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07Python使用lambda拋出異常實現(xiàn)方法解析
這篇文章主要介紹了Python使用lambda拋出異常實現(xiàn)方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08基于Python第三方插件實現(xiàn)西游記章節(jié)標(biāo)注漢語拼音的方法
這篇文章主要介紹了基于Python第三方插件實現(xiàn)西游記章節(jié)標(biāo)注漢語拼音的方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05python保存字典數(shù)據(jù)到csv文件的完整代碼
在實際數(shù)據(jù)分析過程中,我們分析用Python來處理數(shù)據(jù)(海量的數(shù)據(jù)),我們都是把這個數(shù)據(jù)轉(zhuǎn)換為Python的對象的,比如最為常見的字典,下面這篇文章主要給大家介紹了關(guān)于python保存字典數(shù)據(jù)到csv的相關(guān)資料,需要的朋友可以參考下2022-06-06