【发布时间】:2019-03-26 17:48:59
【问题描述】:
我正在尝试模拟点击在线数据工具上的多个选项,最后根据您的过滤器下载 Excel 表。
我目前正在使用 selenium 并识别 xpath。
我能够完成一次迭代并获得一张 Excel 表格,但我需要针对下拉选项的每一种可能排列进行此操作。手工操作是不现实的,因为有成千上万种选择。
上下文网站:https://data.cms.gov/mapping-medicare-disparities
有人知道可以在 selenium 中完成的功能吗?
我目前的策略是使用 xpath 创建列表,然后尝试执行置换函数来获取所有组合。但是,这不起作用,因为函数: b.find_element_by_xpath 一次只允许一个 xpath。
列表示例:
地理县州/地区
G1 = '//选择[@id="geography"]//选项[@value="c"]' G2 = '//选择[@id="geography"]//选项[@value="s"]'
地理位置 = [G1, G2]
创建组合池
导入迭代工具 从 itertools 导入产品
对于产品中的烫发(地理、调整、分析、域): 打印(烫)
使用 selenium 的实际代码
**from** selenium **import** webdriver
**from** selenium.webdriver.common.keys **import** Keys
b = webdriver.Firefox()
点击弹出窗口的代码
pop_up = b.find_element_by_xpath('/html/body/div[1]/button')
pop_up.click()
尝试使用 xpath 一次选择所有选项的代码
b.find_element_by_xpath(('//select[@id="geography"]//option[@value="c"],
'//select[@id="adjust"]//option[@value="1"],'//select[@id="analysis"]
//option[@value="base"],'//select[@id="domain"]//option[@value="d1"]'))
错误消息:InvalidArgumentException:消息:无效类型:序列,应为第 1 行第 28 列的字符串
这是因为 find_element_by_xpath(我假设)一次只会查看 1 个 xpath。
【问题讨论】:
标签: python selenium web-crawler