前一篇带各位实际使用了汇率爬虫并搭配 openpyxl 这个套件做到执行程序便可读取在 excel 撰写的币种,爬取该币种的汇率并更新至 excel。
今天将与各位介绍 selenium 这个方便的动态爬虫套件,撰写 selenium 十分容易且懒人,就像在写脚本,运行也与正常人类似(比较不会被反爬虫挡)。在实际使用中,需要连结 webdriver 。
接下来请各位读者先去下载对应 chrome 浏览器版本的 webdriver,记得要将 webdriver 放到专案路径下(与 Python 程序同个路径)。
https://chromedriver.chromium.org/downloads
接下来下载 Selenium
pipenv install selenium
可以执行该程序看是否会出现浏览器视窗。
from selenium import webdriver
driver = webdriver.Chrome()
进入网页
driver.get(url)
selenium 提供非常多种方法来锁定元素,使用上也非常直白,以下列出锁定单一元素的用法(若有多个符合回传第一个)。
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。其实也就是 element 後面加个 s。
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("owo")
element.send_keys("password")
element = driver.find_element_by_id("owo")
element.clear()
element = driver.find_element_by_id("button")
element.click()
element = driver.find_element_by_id("owo")
element.submit()
关闭视窗
driver.close()
关闭浏览器
driver.quit()
今天带各位稍微走过了一遍 Selenium 基本用法,熟用了以上用法其实就能模拟大部分使用者操作了,另外的用法将在之後与各位娓娓道来。
其实 Selenium 使用上十分容易,像极了写脚本的过程,常用於模拟使用者的动态爬虫。
明天会带各位实战 Dcard 爬虫,爬取 Dcard 上的文章,会让爬虫帮我们滑手机欧><。
Selenium with Python docs : https://selenium-python.readthedocs.io/
Selenium docs : https://readthedocs.org/projects/selenium-python/downloads/pdf/latest/
>>: 谁喜欢这则贴文,初探 case...when 用法,Ruby 30 天刷题修行篇第十六话
讲完漏洞赛制、实体密室逃脱之後,还有什麽可以实际玩看看漏洞呢? 另外想跟大家分享的是可以实作的靶机:...
今天大概会聊到的范围 @Preview annotation 及相关用法 原先的 xml 的 la...
什麽是互动?简单说希望能够让使用者允许监听和分派事件,用比较白话的一点方式举例就是当我们滑鼠按下某个...
成为公司的一份子大都是经由招募流程而加入的,但某一天团队需要扩大或是人手不足,而你刚好有机会可以参与...
接续昨天 我们在按钮的action里加入这段程序码, 变数tag-1的部分就是按下1时呈现的数字是刚...