iT邦幫忙

2022 iThome 鐵人賽

DAY 18
1
自我挑戰組

養爬蟲的人學爬蟲系列 第 18

【Day 18】動態網頁爬蟲-Selenium(1/2)

  • 分享至 

  • xImage
  •  

閒聊
昨天稍微整理了我們這半個月學的東西,今天要繼續踏上學習爬蟲的路了。
之前我們爬的都是靜態網頁,今天要學的跟動態網頁有關係。

Selenium
Selenium可以進行自動化測試,來模擬使用者登錄、滾動卷軸。

  • 安裝
    這裡會需要安裝Selenium和Webdriver(驅動程式)
pip install selenium

安裝Webdriver則是要在Python套件儲存庫PyPI(Python Package Index),輸入Selenium查詢後會看到(紅色框)。
https://ithelp.ithome.com.tw/upload/images/20221001/20145359pyy7zpD8uq.jpg
點進去後會看到Drivers
https://ithelp.ithome.com.tw/upload/images/20221001/20145359rAgvVZU6Xf.png
在這裡可以選擇依照電腦的系統下載
https://ithelp.ithome.com.tw/upload/images/20221001/20145359HrAEjVMSH8.png
這邊建議可以解壓縮到Python存放的位置
https://ithelp.ithome.com.tw/upload/images/20221001/20145359W2v4cmWcdI.png

  • 導入及請求GET
from selenium import webdriver
driver = webdriver.Chrome()
  • 進入網頁
driver.get(url)

查找元素

driver.find_element_by_id() 
driver.find_element_by_name()
driver.find_element_by_xpath()
driver.find_element_by_link_text()
driver.find_element_by_partial_link_text()
driver.find_element_by_tag_name()
driver.find_element_by_class_name()
driver.find_element_by_css_selector()

回傳元素
在回傳的時候,會是list(串列)型態。

driver.find_elements_by_id()
driver.find_elements_by_name()
driver.find_elements_by_xpath()
driver.find_elements_by_link_text()
driver.find_elements_by_partial_link_text()
driver.find_elements_by_tag_name()
driver.find_elements_by_class_name()
driver.find_elements_by_css_selector()

操作方法

  • 傳入文字
element = driver.find_element_by_id('Hi')
element.sent_keys('password')
  • 清空文字
element = driver.find_element_by_id('Hi')
element.clear()
  • 點擊按鈕
element = driver.find_element_by_id('button')
element.click()
  • 送出表單
element = driver.find_element_by_id('Hi')
element.submit()
  • 關閉視窗
driver.close()
  • 關閉瀏覽器
driver.quit()

結語
今天初步認識了Selenium,介紹了環境跟一些基本的操作方法。
明天會更詳細的了解使用的部分!

明天!
【Day 19】動態網頁爬蟲-Selenium(2/2)

參考資料
[Python爬蟲教學]整合Python Selenium及BeautifulSoup實現動態網頁爬蟲
https://www.learncodewithmike.com/2020/05/python-selenium-scraper.html


上一篇
【Day 17】半個月以來的總結
下一篇
【Day 19】動態網頁爬蟲-Selenium(2/2)
系列文
養爬蟲的人學爬蟲30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言