日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Python使用Selenium自動進行百度搜索的實現

瀏覽:251日期:2022-06-14 15:13:46
目錄安裝 Selenium寫代碼點位網頁元素

我們今天介紹一個非常適合新手的python自動化小項目,項目雖小,但是五臟俱全。它是一個自動化操作網頁瀏覽器的小應用:打開瀏覽器,進入百度網頁,搜索關鍵詞,最后把搜索結果保存到一個文件里。這個例子非常適合新手學習Python網絡自動化,不僅能夠了解如何使用Selenium,而且還能知道一些超級好用的小工具。

當然有人把操作網頁,然后把網頁的關鍵內容保存下來的應用一律稱作網絡爬蟲,好吧,如果你想這么爬取內容,隨你。但是,我更愿意稱它為網絡機器人。

我今天介紹的項目使用Selenium,Selenium 是支持 web 瀏覽器自動化的一系列工具和庫的綜合項目。Selenium 的核心是 WebDriver,這是一個編寫指令集的接口,可以在許多瀏覽器中互換運行。

閑言少敘,硬貨安排。

安裝 Selenium

可以使用 pip 安裝 Python 的 Selenium 庫:pip install selenium

(可選項:要執行項目并控制瀏覽器,需要安裝特定于瀏覽器的 WebDriver 二進制文件。

下載 WebDriver 二進制文件 并放入 系統 PATH 環境變量 中.)

由于本地瀏覽器版本升級,引起的版本不一致問題,和系統PATH環境變量的設置比較繁瑣,所以我使用webdriver_manager,

安裝 Install manager:

pip install webdriver-manager寫代碼

引入模塊:

from selenium import webdriverfrom webdriver_manager.chrome import ChromeDriverManagerfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.keys import Keys

首先我們定義一個類Search_Baidu, 它主要用于初始化;定義自動化步驟的方法;結束關閉瀏覽器。

class Search_Baidu:def __init__(self):def search(self, keyword):def tear_down(self):

接下來我們分別介紹每個方法的實現過程。

def __init__(self): #類構造函數,用于初始化selenium的webdriverurl = ’https://www.baidu.com/’ #這里定義訪問的網絡地址self.url = urloptions = webdriver.ChromeOptions()options.add_experimental_option('prefs', {'profile.managed_default_content_settings.images': 2}) # 不加載圖片,加快訪問速度options.add_experimental_option(’excludeSwitches’, [’enable-automation’]) # 此步驟很重要,設置為開發者模式,防止被各大網站識別出來使用了Selenium# 這里使用chrome瀏覽器,而且使用我們剛才安裝的webdriver_manager的chrome driver,并賦值上面的瀏覽器設置options變量self.browser = webdriver.Chrome(ChromeDriverManager().install(), options=options)self.wait = WebDriverWait(self.browser, 10) #超時時長為10s,由于自動化需要等待網頁控件的加載,所以這里設置一個默認的等待超時,時長為10秒 def tear_down(self):self.browser.close() #最后,關閉瀏覽器

接下來是重頭戲,寫我們操作瀏覽器的步驟,打開瀏覽器,進入百度網頁,輸入搜索關鍵字:Selenium,等待搜索結果,把搜索結果的題目和網址保存到文件里。

def search(self, keyword): # 打開百度網頁 self.browser.get(self.url) # 等待搜索框出現,最多等待10秒,否則報超時錯誤 search_input = self.wait.until(EC.presence_of_element_located((By.XPATH, ’//*[@id='kw']’))) # 在搜索框輸入搜索的關鍵字 search_input.send_keys(keyword) # 回車 search_input.send_keys(Keys.ENTER) # 等待10秒鐘 self.browser.implicitly_wait(10) # 找到所有的搜索結果 results = self.browser.find_elements_by_css_selector('.t a , em , .c-title-text') # 遍歷所有的搜索結果 with open('search_result.txt','w') as file: for result in results: if result.get_attribute('href'):print(result.get_attribute('text').strip())# 搜索結果的標題title = result.get_attribute('text').strip()# 搜索結果的網址link = result.get_attribute('href')# 寫入文件file.write(f'Title: {title}, link is: {link} n')點位網頁元素

這里頭有個關鍵點,就是如何點位網頁元素:

比如:

search_input = self.wait.until(EC.presence_of_element_located((By.XPATH, ’//*[@id='kw']’)))

還有:

self.browser.find_elements_by_css_selector('.t a , em , .c-title-text')

打個比方,快遞員通過地址找到你家,給你送快遞,這里的XPATH和CSS Selector就是網頁元素的地址,那么如何得到呢?第一個就是Chrome自帶的開發者工具,可以快捷鍵F12,也可以自己在下圖中找到:

Python使用Selenium自動進行百度搜索的實現

然后在百度搜索框,右鍵:

Python使用Selenium自動進行百度搜索的實現

找到輸入框的HTML元素,

Python使用Selenium自動進行百度搜索的實現

在HTML元素右鍵,拷貝XPath地址。

Python使用Selenium自動進行百度搜索的實現

這是比較簡單的定位網頁元素的方法。接下來我們定位搜索結果元素的時候,就遇到了麻煩,如下圖:

Python使用Selenium自動進行百度搜索的實現

我們不能單獨的定位每個元素,而是要找到規律,一次把所有的搜索結果找到,然后返回一個list,我們好遍歷這個list,這個怎么實現呢?

接下來,我們請出一大神器:SelectorGadget

Python使用Selenium自動進行百度搜索的實現

SelectorGadget是一個CSS Selector生成器,大家可以在他的官方文檔找到具體的使用說明,我這里簡單介紹一下:首先啟動SelectorGadget,點擊一下圖標

Python使用Selenium自動進行百度搜索的實現

瀏覽器會出現下面的框框:

Python使用Selenium自動進行百度搜索的實現

然后我們在網頁用鼠標左鍵,點擊我們要定位的元素

Python使用Selenium自動進行百度搜索的實現

然后頁面會變成下面的樣子:

Python使用Selenium自動進行百度搜索的實現

所有黃色的部分說明都被選擇了,如果我們不想要的元素,右鍵點擊,使它變為紅色,說明它被去掉了。如果沒有被選擇我們又需要的元素,我們左鍵選擇它,使它變為綠色。最后我們希望選擇的頁面元素都變成了綠色或者黃色,如下圖:

Python使用Selenium自動進行百度搜索的實現

我們就可以拷貝框框里的內容作為CSS Selector了。

Python使用Selenium自動進行百度搜索的實現

通過CSS Selector找到所有的搜索結果。

results = self.browser.find_elements_by_css_selector('.t a , em , .c-title-text')

到此,我們就實現了這么個簡單的小應用了,其實selenium就是幫助我們自動操作網頁元素,所以我們定位網頁元素就是重中之重,希望本文給你帶來一點幫助。

下面我附上代碼:

from datetime import timefrom selenium import webdriverfrom webdriver_manager.chrome import ChromeDriverManagerfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.keys import Keysclass Search_Baidu: def __init__(self):url = ’https://www.baidu.com/’self.url = urloptions = webdriver.ChromeOptions()options.add_experimental_option('prefs', {'profile.managed_default_content_settings.images': 2}) # 不加載圖片,加快訪問速度options.add_experimental_option(’excludeSwitches’, [’enable-automation’]) # 此步驟很重要,設置為開發者模式,防止被各大網站識別出來使用了Seleniumself.browser = webdriver.Chrome(ChromeDriverManager().install(), options=options)self.wait = WebDriverWait(self.browser, 10) #超時時長為10s def search(self, keyword):# 打開百度網頁self.browser.get(self.url)# 等待搜索框出現,最多等待10秒,否則報超時錯誤search_input = self.wait.until(EC.presence_of_element_located((By.XPATH, ’//*[@id='kw']’)))# 在搜索框輸入搜索的關鍵字search_input.send_keys(keyword)# 回車search_input.send_keys(Keys.ENTER)# 等待10秒鐘self.browser.implicitly_wait(10)# 找到所有的搜索結果results = self.browser.find_elements_by_css_selector('.t a , em , .c-title-text')# 遍歷所有的搜索結果with open('search_result.txt','w') as file:for result in results:if result.get_attribute('href'): print(result.get_attribute('text').strip()) # 搜索結果的標題 title = result.get_attribute('text').strip() # 搜索結果的網址 link = result.get_attribute('href') # 寫入文件 file.write(f'Title: {title}, link is: {link} n') def tear_down(self):self.browser.close()if __name__ == '__main__': search = Search_Baidu() search.search('selenium') search.tear_down()

到此這篇關于Python使用Selenium自動進行百度搜索的實現的文章就介紹到這了,更多相關Python Selenium自動百度搜索內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美日韩一二三四| 日韩三级精品| 青草国产精品| 日韩综合小视频| 国产亚洲毛片| 亚洲欧美不卡| 亚洲欧美激情诱惑| 免费观看在线色综合| 午夜在线播放视频欧美| 久久国产成人| 在线观看一区| 视频一区日韩| 日韩av影院| 国产精品白丝一区二区三区| 欧美三区不卡| 亚洲精品伊人| 日韩成人午夜精品| 欧美天堂在线| 精品亚洲二区| 在线手机中文字幕| 日韩欧美1区| 欧美日韩一区二区综合 | 香蕉国产精品| 制服诱惑一区二区| 香蕉久久一区| 久久久久伊人| 久久国产高清| 国内自拍视频一区二区三区| 国产日韩免费| 国产福利亚洲| 免费在线日韩av| 97国产精品| 久久精品青草| 丝袜a∨在线一区二区三区不卡| 综合在线一区| 美女免费视频一区| 久久天堂成人| 亚洲综合婷婷| 免费看一区二区三区| 在线亚洲人成| 日韩中文字幕亚洲一区二区va在线| 日本一区福利在线| 福利一区和二区| 欧美精品一区二区三区精品| 午夜在线观看免费一区| 天海翼亚洲一区二区三区| 国产精品一区二区免费福利视频 | 精品美女在线视频| 久久国产亚洲| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产日韩视频在线| 亚洲成人av观看| 蜜臀av一区二区三区| 免费亚洲婷婷| 蜜桃一区二区三区| 国产日产一区| 91tv亚洲精品香蕉国产一区| 免费成人av在线播放| 粉嫩av一区二区三区四区五区 | 视频一区欧美精品| 欧美国产三级| 91国语精品自产拍| 日韩专区视频网站| 欧美aa一级| 日韩一区二区三区精品视频第3页| а√在线中文在线新版| 亚洲一区二区三区久久久| 国产伊人久久| 婷婷亚洲精品| 日韩国产欧美| 青青草国产成人99久久| 婷婷综合社区| 麻豆精品av| 亚洲三级网址| 免费不卡中文字幕在线| 久久精品国内一区二区三区| 久热re这里精品视频在线6| 久久精品二区亚洲w码 | 在线一区电影| 高清久久精品| 日韩国产精品久久久久久亚洲| 91精品一区二区三区综合| 国产精品对白| 中文字幕亚洲精品乱码| 国产一区二区三区自拍| 国产一区二区亚洲| 久久激五月天综合精品| 另类av一区二区| 久久亚洲精品中文字幕蜜潮电影| 国产欧美一区| 国产视频一区在线观看一区免费| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 国产一区二区三区四区五区传媒| 在线亚洲一区| 日本在线精品| 精品资源在线| 国产欧美日韩影院| 蜜桃免费网站一区二区三区| 亚洲无线一线二线三线区别av| 久久不卡国产精品一区二区| 亚洲日产av中文字幕| 亚洲女同中文字幕| 日韩欧美一区二区三区在线观看 | 欧美日韩视频网站| 久久一区视频| 国产精品夜夜夜| 日本99精品| 免费人成网站在线观看欧美高清| 给我免费播放日韩视频| 国产精品**亚洲精品| 免费不卡在线观看| 亚洲免费网址| 亚洲欧洲日本mm| 欧美.日韩.国产.一区.二区 | 黄色国产精品| 成人一区而且| 精品三级国产| 国产不卡av一区二区| 国产精品115| 国产精品国码视频| 国产丝袜一区| 国产精品一区二区三区www | 亚洲先锋成人| 伊人精品一区| 婷婷激情久久| 久久蜜桃资源一区二区老牛| 日韩在线短视频| 日本在线精品| 久久九九精品| 国产99亚洲| 午夜av一区| 玖玖玖国产精品| 中文字幕日韩高清在线| 亚洲精品三级| 88久久精品| 欧美午夜网站| 国产福利亚洲| 中文在线免费视频| 欧美日韩国产v| 久久亚洲精品中文字幕蜜潮电影| 欧美日韩水蜜桃| 午夜日韩福利| 噜噜噜久久亚洲精品国产品小说| 夜夜嗨一区二区| 亚洲三级视频| 国产精品久久久久久av公交车| 国内一区二区三区| 成人看片网站| 激情五月综合| 亚洲区国产区| 欧美日韩亚洲一区| 国产精品777777在线播放| 欧美黄色一区| 日韩欧美看国产| 黄色成人在线网址| 亚洲一区欧美| 国产美女撒尿一区二区| 美腿丝袜亚洲三区| 国产传媒在线观看| 久久九九精品| 首页欧美精品中文字幕| 国产三级精品三级在线观看国产| 精品视频一区二区三区四区五区 | 久久91导航| 欧美va亚洲va日韩∨a综合色| 欧美网站在线| 日韩av一级片| 国产夫妻在线| 亚洲一区二区三区高清| 日本三级亚洲精品| 成人亚洲一区| 国产精品三上| 免费在线日韩av| 国产综合亚洲精品一区二| 综合国产精品| 欧美精品99| 欧美日韩中文一区二区| 亚洲精品精选| 国产一区二区三区视频在线| 精品一区欧美| 日韩精品一区二区三区中文在线 | 国产欧美日韩一区二区三区四区| 国产aⅴ精品一区二区三区久久| 国产专区一区| 综合激情在线| 久久亚洲精品中文字幕| 亚洲午夜一级| 国产情侣久久| 99tv成人| 久久激五月天综合精品| 久久免费高清| 97久久中文字幕| 日韩精品诱惑一区?区三区| 国产亚洲精品自拍| 国产精品3区| 日韩视频一区二区三区在线播放免费观看| 日韩av黄色在线| 欧美午夜精品一区二区三区电影| 欧美亚洲三级| 婷婷精品视频|