gpt4 book ai didi

python - 将找不到的元素设置为 Null/Empty 而不是跳过它们

转载 作者:太空宇宙 更新时间:2023-11-03 13:08:14 25 4
gpt4 key购买 nike

我想弄清楚如何将找不到的元素设置为 null 而不是跳过循环。在某些情况下,名称或职位或公司会丢失,因此我希望在我的 csv 中将其留空。我在 python 方面的知识有限,所以我真的需要一些帮助。

我已经拥有的问题是,如果抛出异常,则完全跳过该行。什么是实现我正在寻找的最好方法? Pandas 数据框会帮助解决这个问题吗?如果是这样,我应该怎么写呢?我应该以不同的方式写入 csv 吗?

filename = "C:\\scrape.csv"
f = open(filename, "w")

headers = "Name, Company, Title\n"

f.write(headers)

names = []
for value in names:
#Search
browser.find_element_by_xpath("//*[@id='ctl09_FindFirstName']").send_keys(value)
browser.find_element_by_xpath("//*[@id='ctl11_FindContacts']").click()
try:
for i in range(5):
try:
Name = browser.find_element_by_xpath("//*[@id='ctl11_DisplayName_"+str(i)+"']").text
Company = browser.find_element_by_xpath("//*[@id='ctl11_CompanyNamePanel_"+str(i)+"']").text
Title = browser.find_element_by_xpath("//*[@id='ctl11_CompanyTitlePanel_"+str(i)+"']").text

f.write(Name.replace(",", "|") + "," + Company.replace(",", "|") + "," + Title.replace(",", "|") + "\n")

#print("Name: " + browser.find_element_by_xpath("//*[@id='ctl11_DisplayName_"+str(i)+"']").text)
#print("Company: " + browser.find_element_by_xpath("//*[@id='ctl11_CompanyNamePanel_"+str(i)+"']").text)
#print("Title: " + browser.find_element_by_xpath("//*[@id='ctl11_CompanyTitlePanel_"+str(i)+"']").text)
except NoSuchElementException:
continue
except NoSuchElementException:
pass
f.close()

最佳答案

而不是使用 find_element_by , 你可以使用 find_elements_by .这样它将创建一个找到的元素列表,或者如果没有找到匹配的元素则创建一个列表而不是抛出 NoSuchElementException.

试试这个:

browser.find_element_by_xpath("//*[@id='ctl09_FindFirstName']").send_keys(value)
browser.find_element_by_xpath("//*[@id='ctl11_FindContacts']").click()
for i in range(5):
Name = browser.find_elements_by_xpath("//*[@id='ctl11_DisplayName_"+str(i)+"']").text
Company = browser.find_elements_by_xpath("//*[@id='ctl11_CompanyNamePanel_"+str(i)+"']").text
Title = browser.find_elements_by_xpath("//*[@id='ctl11_CompanyTitlePanel_"+str(i)+"']").text

if not Name: name = "None"
else: name = Name[0].text

if not Company: company = "None"
else: company = Company[0].text

if not Title: title = "None"
else: title = Title[0].text

f.write(name.replace(",", "|") + "," + company.replace(",", "|") + "," + title.replace(",", "|") + "\n")
f.close()

关于python - 将找不到的元素设置为 Null/Empty 而不是跳过它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51140732/

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