公司为弹性打卡制,平均每天8H即可,初学爬虫想获取考勤数据,无论如何都绕不过登录,经过多番尝试,selenium可轻松绕过登录,最终也是成功获取打卡数据,实现一键计算工时的成果。
1、安装Chrome浏览器,下载chromedriver.exe
2、将chromedriver.exe分别放在浏览器和python可执行文件相同目录下,如图:
3、增加环境变量,Path->C:\Users\lenovo\AppData\Local\Google\Chrome\Application,为浏览器安装目录,根据自己实际情况修改。
4、给chrome.exe创建或复制一个桌面快捷方式,右键-属性-目标chrome.exe最后新增:
--remote-debugging-port=9222 --auto-open-devtools-for-tabs
5、准备好以上步骤后,几行代码轻松获取想要的免登录数据,具体使用步骤如下:
启动刚才配置好的chrome.exe,为了区分开,我将名字修改为调试模式。
登录自己要爬取数据的网址,依次登录,登录后停留在当前页。
代码如下:
from selenium import webdriver
from selenium.webdriver.common.by import By
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
driver = webdriver.Chrome(options=chrome_options)
url = '自己的url'
driver.get(url)
driver.maximize_window()
xpath: str = '/html/body/div[1]/div/div[5]/div[2]/div'
# 使用 XPath 定位元素
element = driver.find_element(by=By.XPATH, value=xpath)
# 获取元素的文本内容
element_text = element.text
print(element_text)
xpath取要爬内容的即可,浏览器右键-检查-要爬取的元素