日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

利用python爬虫(part17)--初识selenium

發布時間:2023/12/19 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用python爬虫(part17)--初识selenium 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習筆記


文章目錄

      • selenium
      • phantomjs與chromedriver
      • 瀏覽器對象browser


selenium

selenium為Web自動化測試工具,可運行在瀏覽器,根據指令操作瀏覽器,如點擊、下拉等。如果我們將selenim和Chrome/phantomjs瀏覽器結合,則功能會非常強大,我們幾乎可以爬取想爬取的任何東西。

  • 安裝
pip install selenium

注意 ,selenium安裝比較容易報超時錯誤:ReadTimeoutError,聽說是由于selenium服務器在美國,所以連接很差。網上有挺多辦法的,但是我比較懶,就執行了7次這個代碼,才把它給下載下來。

報錯信息:

phantomjs與chromedriver

phantomjs為無界面瀏覽器(又稱無頭瀏覽器),可以在內存中進行頁面加載,提高加載效率。chromedriver可以配合selenium庫使用,只有安裝chromedriver,才能驅動Chrome瀏覽器完成相應的操作。

  • 下載(phantomjs、chromedriver)

在網上查找對應版本的phantomjs和chromedriver,并將其exe程序放在python安裝目錄的Scripts文件夾下(添加到系統環境變量)。

chromedriver下載地址:https://npm.taobao.org/mirrors/chromedriver/

phantomjs下載地址:https://npm.taobao.org/dist/phantomjs/

注意!我們在下載chromedriver時,不能隨便下載,應該根據Chrome瀏覽器的版本進行下載。比如說,我的版本Chrome瀏覽器為81.0.4044,那我就需要下載與這個版本接近的chromedriver,比如這里我下載的是chromedriver_win32.zip 。

  • 舉個例子1

我們利用selenium和chromedriver打開chrome瀏覽器:

from selenium import webdriver browser = webdriver.Chrome()

被打開的瀏覽器界面:

  • 舉個例子2

我們利用selenium和chromedriver打開百度:

# -*- coding: utf-8 -*-from selenium import webdriver#創建瀏覽器對象(打開瀏覽器) browser = webdriver.Chrome() #當我們沒有將chromedrive添加到環境變量中 #那么我們需要指定參數excutable_path='chromedrive的路徑'#在地址欄中輸入百度URL browser.get("http://www.baidu.com/")

被打開的瀏覽器界面:

  • 舉個例子3

利用selenium和chromedriver打開百度,在內存中截圖,并關閉瀏覽器:

# -*- coding: utf-8 -*- from selenium import webdriver#創建瀏覽器對象(打開瀏覽器) browser = webdriver.Chrome() #當我們沒有將chromedrive添加到環境變量中 #那么我們需要指定參數excutable_path='chromedrive的路徑'#在地址欄中輸入百度URL browser.get("http://www.baidu.com/")#獲取屏幕截圖 browser.save_screenshot("./test/baidu_screen.png")#關閉瀏覽器 browser.quit()

截圖:

  • 舉個例子4

利用selenium和chromedriver打開百度,搜索關鍵字【垂耳兔】。

為了在百度中搜索詞條,我們需要知道百度搜索的搜索框百度一下的按鈕被包含在哪些標記中,故我們審查搜索框元素:

我們發現,這個搜索框在input標記中,且這個input標記的id屬性值為kw.

我們也可以看到,百度一下的按鈕也被包含在input標記中,且這個input標記的id屬性值為su.

python代碼:

# -*- coding: utf-8 -*-from selenium import webdriver#創建瀏覽器對象(打開瀏覽器) browser = webdriver.Chrome() #當我們沒有將chromedrive添加到環境變量中 #那么我們需要指定參數excutable_path='chromedrive的路徑'#在地址欄中輸入百度URL browser.get("http://www.baidu.com/")#找到搜索框 browser.find_element_by_id('kw').send_keys("垂耳兔")#點擊百度一下 browser.find_element_by_id('su').click()#獲取屏幕截圖 browser.save_screenshot("./test/baidu_screen.png")#關閉瀏覽器 browser.quit()

截圖:

  • 舉個例子5

我們用xpath來查找關鍵字【垂耳兔】

# -*- coding: utf-8 -*-from selenium import webdriverbrowser = webdriver.Chrome() browser.get("http://www.baidu.com/") browser.find_element_by_xpath('//*[@id="kw"]').send_keys("垂耳兔") browser.find_element_by_xpath('//*[@id="su"]').click()browser.quit()

瀏覽器對象browser

  • 相關方法
browser = webdriver.Chrome(executable_path='path') browser.get(url) browser.page_source # 查看響應內容,即查看HTML源碼 browser.page_source.find('字符串') # 從響應內容中搜索指定字符串,沒有找到返回:-1,找到則返回:一個非-1的數 browser.quit() # 關閉瀏覽器#---------單元素查找----------- # 返回1個節點對象 browser.find_element_by_id('') browser.find_element_by_name('') browser.find_element_by_class_name('') browser.find_element_by_xpath('')#---------多元素查找----------- #返回節點對象列表 browser.find_elements_by_id(['', '','']) browser.find_elements_by_name(['', '','']) browser.find_elements_by_class_name(['', '','']) browser.find_elements_by_xpath(['', '',''])#---------節點對象操作----------- ele.send_keys('') #向文本框發送內容 ele.click() #點擊按鈕 ele.text #獲取文本內容 ele.get_attribute('src') # 獲取屬性值
  • 來個例子

爬取#影#堂最新的5條電影信息。

# -*- coding: utf-8 -*-from selenium import webdriver browser = webdriver.Chrome()#在地址欄中輸入百度URL browser.get("https://www.dytt8.net/html/gndy/dyzz/index.html")xpath = '//*[@id="header"]//div[@class="co_content8"]/ul/table' film_names = browser.find_elements_by_xpath(xpath)for item in film_names[0:5]:print(item.text, '\n')browser.quit()

輸出:

2019年劇情喜劇《軍人的妻子》BD中英雙字幕日期:2020-04-22 10:39:03 點擊:0 ◎譯 名 軍人的妻子/軍嫂/女聲我最美(臺) ◎片 名 Military Wives/The Singing Club ◎年 代 2019 ◎產 地 英國 ◎類 別 劇情/喜劇 ◎語 言 英語 ◎字 幕 中英雙字幕 ◎上映日期 2019-09-06(多倫多電影節) / 2020-03-06(英國) ◎IMDb評分 6.4/10 from 1133 users ◎豆 2019年獲獎奇幻《匹諾曹/木偶奇遇記》BD中英雙字幕日期:2020-04-22 16:58:22 點擊:0 ◎譯 名 匹諾曹/木偶奇遇記 ◎片 名 Pinocchio ◎年 代 2019 ◎產 地 意大利,英國,法國 ◎類 別 奇幻 ◎語 言 意大利語 ◎上映日期 2019-12-19(意大利) ◎IMDb評分 6.5/10 from 1726 users ◎豆瓣評分 6.8/10 from 2,205 users ◎字 幕 中英雙字幕 ◎文件格式 x264 + a 2019年動作《葉問4:完結篇》BD國粵雙語中字日期:2020-04-20 10:12:22 點擊:0 ◎譯 名 葉問4:完結篇/Ip M4n/Ip Man 4/Yip Man 4/Yip Man 4:The Finale/葉問4 ◎片 名 葉問4 ◎年 代 2019 ◎產 地 中國香港 ◎類 別 劇情/動作 ◎語 言 國語/粵語 ◎字 幕 中文 ◎上映日期 2019-12-20(中國大陸) ◎IMDb評分 7.5/10 from 4176 users ◎豆瓣評分 7.2 2020年動作懸疑《節奏組/復仇謎奏》BD中英雙字幕日期:2020-04-20 00:52:37 點擊:0 ◎譯 名 節奏組/復仇謎奏 ◎片 名 The Rhythm Section ◎年 代 2020 ◎產 地 英國 ◎類 別 動作 / 懸疑 / 驚悚 ◎語 言 英語 ◎字 幕 中英雙字幕 ◎上映日期 2020-01-31(英國) ◎IMDb評分 5.2/10 from 3922 users ◎豆瓣評分 5.0/10 from 498 users ◎文件格式 x264 + 2018年劇情犯罪《江湖兒女》BD國語中字日期:2020-04-19 20:49:35 點擊:0 ◎譯 名 Ash is Purest White/Money Love ◎片 名 江湖兒女/灰燼是最潔白的/金錢與愛情 ◎年 代 2018 ◎產 地 中國/法國/日本 ◎類 別 劇情/愛情/犯罪 ◎字 幕 中文 ◎語 言 普通話/山西方言/湖北方言/重慶方言 ◎上映日期 2018-05-11(戛納電影節)/2018-09-21(中國) ◎

總結

以上是生活随笔為你收集整理的利用python爬虫(part17)--初识selenium的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。