我正在尝试从站点https://www.pais.co.il/info/Thank-to.aspx中获取数据(忽略希伯来语)。
我需要从第一个下拉菜单中单击其中任何一个选项
点击那个按钮
然后把这些数字
我知道如何抓取数字/点击或选择按钮,但我不知道如何从那个奇怪的下拉菜单中反复选择每个选项……
我确实尝试单击该按钮打开下拉菜单,作为互联网上的一些建议,但无法这样做。
button1 = driver.find_element_by_xpath('/html/body/form/div[3]/div[1]/div/div/div[1]/select')
但我收到错误:消息:没有这样的元素:无法找到元素
我希望您能为网络报废领域的新手提供帮助:)
1条答案
按热度按时间osh3o9ms1#
您需要的数据是用js加载的,因此您可以使用Selify来获取城市列表。这里有一个可能的解决方案:
对于某些城市,没有数据,例如:
"בוסתאן אל-מרג"
,因此我们只打印到控制台No data for בוסתאן אל-מרג
输出CSV文件
pais.csv
:已在
Python 3.9.10
上测试。使用Selenium 4.5.0
和requests 2.28.1
当然,我们可以只使用Selify而不使用
requests
库来获得所需的数据。但在测试了这个解决方案之后,在我看来它似乎更快了。因为在发出POST请求时,我们会立即获得所需的值,而要使用Selify从标记(div.counter
)接收数据,我们必须等待计数器动画完成例如,您还可以使用
ThreadPoolExecutor
,这样获取和保存数据的过程将会快得多。这里有一个可能的解决方案: