我正在用硒进行网页抓取,但该网站上有一些广告不包含文字。因此,我无法抓取文字,因为其中没有任何文字。所以我以为我可以使用if语句,但仍然会给出错误。我该如何解决?
此处是代码:
for i in range(10):
dict1 = {}
driver.get("https://www.vrt.be/vrtnws/nl/rubrieken/economie/")
sleep(1)
articles = driver.find_elements_by_class_name("vrt-teaser__title-text")
a = articles[i].text
articles[i].click()
sleep(1)
if driver.find_elements_by_class_name("cmp-text")[0].text and driver.find_elements_by_class_name("cmp-text")[1].text:
tupletext = driver.find_elements_by_class_name("cmp-text")[0].text, driver.find_elements_by_class_name("cmp-text")[1].text
else:
a = "None"
tupletext = "None"
dict1 = a, tupletext
csv_writer.writerow([a,tupletext])
print(dict1)
sleep(1)
答案 0 :(得分:0)
您可以使用try ...,除非这样:
try:
tupletext = driver.find_elements_by_class_name("cmp-text")[0].text, driver.find_elements_by_class_name("cmp-text")[1].text
except:
a = "None"
tupletext = "None"
基本上,它运行命令,如果命令返回错误,它将转到'except'块,并将None分配给a和tupletext。
答案 1 :(得分:0)
您的错误是列表索引超出范围,因此您的if
语句应为:
elements = driver.find_elements_by_class_name("cmp-text")
if (elements.len() < 2) // process an empty tuple
else // normal tuple