我正在尝试使用 Selenium 和 Python 执行动态网页抓取。我试图抓取的网站有一个输入,可以选择近 600 个左右的位置。每个地点都有不同的设施。
我想抓取设施的名称以及每个位置的地址。
我有一个 Excel 文件中的位置列表。我使用 Pandas 导入这些位置,然后尝试执行一个 for 循环,在其中遍历每个位置,在输入中输入该位置,然后抓取下面输出的设施。
但是我的 for 循环没有按预期工作,因此每次运行脚本时,Selenium 驱动程序都会打开,并且我会按预期为第一个位置抓取设施。但此后什么也没有发生。我的目标是让脚本继续,要么打开新的 Selenium 浏览器,要么在输入中输入新位置以抓取第二个位置的设施。
df = pd.read_excel('MA Cities - Licensed Child Care Search.xlsx')
for i in df:
driver = webdriver.Chrome(options = options)
driver.get('https://eeclead.force.com/EEC_ChildCareSearch')
res = driver.execute_script("return document.documentElement.outerHTML")
search = driver.find_element_by_id('j_id0:j_id2:j_id29:city')
search.send_keys(i)
search.send_keys(Keys.ENTER)
通过将驱动程序部分放入一个函数中,然后使用从 0 到我正在处理的城市数的 for 循环调用该函数来解决这个问题。
最佳答案
通过将 selenium 驱动程序部分放入一个函数中,然后使用从 0 到我正在处理的城市数的 for 循环调用该函数来解决这个问题。
for i in range(x):
my_function(i)
然后在函数中添加
search.send_keys(df.iloc[i])
关于python - 如何连续运行多个 Selenium 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56958996/