使用selenium来获取数据集
发布时间
阅读量:
阅读量
使用selenium来获取数据集
1、下载最新的chrome浏览器与chromedriver.exe
帮助
帮助
关于Google Chrome

接着前往获取版本号为134的 chromedriver.exe 文件。
访问地址:https://googlechromelabs.github.io/chrome-for-testing/#stable
单击此处直接访问:访问地址
下载完成后 解压缩 并将文件放置于 D 盘 目录下 记录路径位置 以便后续代码开发时使用。
2、使用示例
# -*- coding: utf-8 -*-
"""
@contact: !微@@信 1257309054
@file: 爬取心理测试题.py
@time: 2025/3/22 21:21
@author: LDC
"""
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
def fetch_datas(url):
driver_path = r'D:\pythonpro\learn_python38\chromedriver-win64\chromedriver.exe' # 指定 ChromeDriver 的路径
service = webdriver.ChromeService(executable_path=driver_path)
# 初始化 WebDriver,使用之前创建 Service 对象
driver = webdriver.Chrome(service=service)
driver.get(url) # 打开网址
wait = WebDriverWait(driver, 10)
confirm_btn = wait.until( # 等待可以点击
EC.element_to_be_clickable(
(By.NAME, 'test')
)
)
confirm_btn.click() # 点击 ’开始测试‘
# 跳转到新页面
driver.switch_to.window(driver.window_handles[-1])
# 显式等待表单加载
form = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "testform"))
)
all_p = form.find_elements(By.TAG_NAME, "p")
p_data = []
for index, p in enumerate(all_p, 1):
print(f"第{index}个P标签内容:", p.text)
p_data.append(p.text)
all_h5 = form.find_elements(By.TAG_NAME, "h5")
title_num = 1
title_dict = {}
part_data = []
part_num = -1
for index, h5 in enumerate(all_h5, 1):
text = h5.text
class_ = h5.get_attribute('class')
if '部分' in text:
part_data.append({
'name': text,
'intro': p_data[part_num],
'title_list': []
})
part_num += 1
title_dict = {}
continue
text = h5.text
if class_ == 'mb-3 mt-3':
print(f'***************这是第{part_num}部分,第{title_num}题************************')
title_num += 1
if title_dict:
part_data[part_num]['title_list'].append(title_dict)
title_num = 1
title_dict = {}
title_dict['title'] = text
title_dict['select'] = []
continue
if title_dict:
title_dict['select'].append(text)
return part_data
def main(url):
return fetch_datas(url)
if __name__ == "__main__":
url = 'https://pt.sjzdzxl.com/test/holland.html'
part_data = main(url)
print(part_data)
全部评论 (0)
还没有任何评论哟~
