Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python selenium打印刮取的数据_Python_Selenium_Selenium Webdriver_Selenium Chromedriver - Fatal编程技术网

使用python selenium打印刮取的数据

使用python selenium打印刮取的数据,python,selenium,selenium-webdriver,selenium-chromedriver,Python,Selenium,Selenium Webdriver,Selenium Chromedriver,下面是我想出的打印临时数据的方法: pool_to_search_for_loads = driver.find_element(By.XPATH, '//*[@id="searchResults"]/div[5]/div') loads_contact = pool_to_search_for_loads.find_elements(By.CLASS_NAME, 'contact') loads_origin = pool_to_search_for_loads.find

下面是我想出的打印临时数据的方法:

pool_to_search_for_loads = driver.find_element(By.XPATH, '//*[@id="searchResults"]/div[5]/div')

loads_contact = pool_to_search_for_loads.find_elements(By.CLASS_NAME, 'contact')
loads_origin = pool_to_search_for_loads.find_elements(By.CLASS_NAME, 'origin')
loads_dest = pool_to_search_for_loads.find_elements(By.CLASS_NAME, 'dest')

def parse_printer(info1, info2, info3):
    count = 0
    while count < len(info1):
        print(info1[count].text, ' from ', info2[count].text, ' to ', info3[count].text)
        count += 1

parse_printer(loads_contact, loads_origin, loads_dest)

为这样的函数编写函数似乎有些过分,是否有更优雅的方法来打印结果?

这取决于是否需要保留loads\u contact、loads\u origin和loads\u dest变量以供其他用途。您可以使用列表理解来提取文本

loads_contact = [x.text for x in pool_to_search_for_loads.find_elements(By.CLASS_NAME, 'contact')]
loads_origin = [x.text for x in pool_to_search_for_loads.find_elements(By.CLASS_NAME, 'origin')]
loads_dest = [x.text for x in pool_to_search_for_loads.find_elements(By.CLASS_NAME, 'dest')]
然后,您可以将这3个项目压缩到1个列表中,然后使用该1个列表中的项目(与f字符串组合)


这是一个聪明的方法!谢谢你的回答!我只是在我的代码上试了一下,它成功了,然后我试着把你的方式扩展到其余的数据上(同样的“加载”\u某物),出于某种神奇的原因,代码运行平稳,没有错误,但没有打印出数据哈哈,顺便说一下,你的方式确实更优雅,但更耗时
loads_contact = [x.text for x in pool_to_search_for_loads.find_elements(By.CLASS_NAME, 'contact')]
loads_origin = [x.text for x in pool_to_search_for_loads.find_elements(By.CLASS_NAME, 'origin')]
loads_dest = [x.text for x in pool_to_search_for_loads.find_elements(By.CLASS_NAME, 'dest')]
for item in zip(loads_contact, loads_origin, loads_dest):
    print(f"{item[0]} from {item[1]} to {item[2]}")