首页 > 解决方案 > Python - 关于 selenium Dropbox 的问题,没有选项和协议复选框用于网络爬取

问题描述

我正在尝试抓取这个网站。我需要:

  1. 选择技术选项之一
  2. 勾选“我已阅读并同意以下免责声明”
  3. 点击搜索按钮
  4. 抓取以提取网址

经过多次尝试,到目前为止我有几行代码。要执行第 1 - 3 部分,我会:

browser.find_element_by_xpath("//select[@name='Techniques']/option[text()='Diversified Technique']").click()

checkbox = browser.find_element_by_id("dnn_ctr5517_Clients_Custom_ctl00_cbAgree")
if not checkbox.is_selected():
    checkbox.click()

buttons = browser.find_elements_by_xpath("//*[contains(text(), 'Search')]")
if not checkbox.is_selected():
    checkbox.click()

这是行不通的。它不会给我任何错误,但也不会产生结果。

注意:对于技术,选项是 li 而不是下面的“微电流神经刺激”选项:

<li class="rcbItem"><label><input type="checkbox" class="rcbCheckBox">Microamperage Neural Stimulation</label></li>

如何设置这三个选项并返回结果?

谢谢你。

标签: pythonpython-3.xseleniumselenium-webdriverweb-crawler

解决方案


这是我所做的:

browser.find_element_by_id('dnn_ctr5517_Clients_Custom_ctl00_rcbSkills_Input').click()

browser.find_element_by_xpath('//label[contains(., "Diversified")]/input').click()

checkbox = browser.find_element_by_id('dnn_ctr5517_Clients_Custom_ctl00_cbAgree')
if not checkbox.is_selected():
  checkbox.click()

searchBtn = browser.find_element_by_id('dnn_ctr5517_Clients_Custom_ctl00_btnSearch')
searchBtn.click()

如果需要选择多个,可以重复第二行。您可能必须在前两行之间插入等待,因为您可能会遇到Element not visible异常。之后,您应该能够等待结果返回。


推荐阅读