gpt4 book ai didi

python - 无法解析网页中的某些字段

转载 作者:行者123 更新时间:2023-12-01 09:15:44 24 4
gpt4 key购买 nike

我使用 selenium 在 python 中编写了一个脚本,用于从网页中获取Director 姓名和Phone 号码。当我执行脚本时,我得到如下结果,这些结果位于单个列表中:

['Director: Cheryl Hughley\nPhone: 661-421-5861\nEmail: Cheryl_hughley@yahoo.com']

如何在单独的字段中动态仅解析该网站的姓名和电话号码:

name: Cheryl Hughley
phone : 661-421-5861

这是我尝试在上面的列表(第一个示例)中生成结果的方法:

from selenium import webdriver

link ="https://www.nafe.com/bakersfield-nafe-network"

def search_info(driver,url):
driver.get(url)
info = [item.text.strip() for item in driver.find_elements_by_css_selector(".markdown p") if "Phone" in item.text]

print(f'{info}')

if __name__ == '__main__':
driver = webdriver.Chrome()
try:
search_info(driver,link)
finally:
driver.quit()

我不希望在解析结果后对其进行处理;相反,我希望让它们飞起来。正则表达式在这里是一个不错的选择吗?谢谢。

最佳答案

您可以尝试以下解决方案:

info = [driver.execute_script("return arguments[0].childNodes[arguments[1]].textContent;", item, index).strip() for index in [0, 2] for item in driver.find_elements_by_css_selector(".markdown p") if "Phone" in item.text]

获取输出

['Director: Cheryl Hughley', 'Phone:  661-421-5861']

info = [driver.execute_script("return arguments[0].childNodes[arguments[1]].textContent;", item, index).split(": ")[-1].strip() for index in [0, 2] for item in driver.find_elements_by_css_selector(".markdown p") if "Phone" in item.text]

获取

['Cheryl Hughley', '661-421-5861']

关于python - 无法解析网页中的某些字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51280078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com