如何从使用 selenium 从网站上提取的文本中删除包含我们想要的单词的元素?
How do I remove the element with the word we want from the text I pulled from a website using selenium?
我使用 Selenium find_element(By.XPATH) 模块从网站上抓取了 6 个元素,并将这些元素添加到列表中。
我将这些元素转换为 .text 并在 google 上搜索,但由于元素在变化,有时可能会写“UNKNOWN”而不是元素,它会打印“UNKNOWN”。
当元素为“UNKNOWN”时,我不想让它列出来,或者如果有删除之类的方法,我也可以使用。
birText = driver.find_element(By.XPATH,"//*[@id='collapse3']/div/div/div/div/div/div[2]/div/div/div[1]/div[1]/div/div/div/h3/strong")
ikiText = driver.find_element(By.XPATH,"//*[@id='collapse3']/div/div/div/div/div/div[2]/div/div/div[2]/div[1]/div/div/div/h3/strong")
ucText = driver.find_element(By.XPATH,"//*[@id='collapse3']/div/div/div/div/div/div[2]/div/div/div[3]/div[1]/div/div/div/h3/strong")
my_list = [birText.text,ikiText.text,ucText.text]
my_list = list(dict.fromkeys(my_list))
results = []
for query in my_list:
results.append(search(query, tld="com", num=10, stop=10, pause=2))
for result in results: print(*list(result),sep='\n')
希望我能解释清楚
我想打印列表中不包含“UNKNOWN”的 .texts。
简短的回答是您需要一个 if
语句来决定是否在您的数组中包含一个项目。
我还会添加一个 for
循环来删除一些重复:
def get_data(driver):
for i in range(3):
selector = f'//*[@id='collapse3']/div/div/div/div/div/div[2]/div/div/div[{i+1}]/div[1]/div/div/div/h3/strong'
element = driver.find_element(By.XPATH, selector)
if element.text != 'UNKNOWN':
yield element.text
有了这个功能,你现在可以做
my_list = list(get_data(driver))
我使用 Selenium find_element(By.XPATH) 模块从网站上抓取了 6 个元素,并将这些元素添加到列表中。
我将这些元素转换为 .text 并在 google 上搜索,但由于元素在变化,有时可能会写“UNKNOWN”而不是元素,它会打印“UNKNOWN”。
当元素为“UNKNOWN”时,我不想让它列出来,或者如果有删除之类的方法,我也可以使用。
birText = driver.find_element(By.XPATH,"//*[@id='collapse3']/div/div/div/div/div/div[2]/div/div/div[1]/div[1]/div/div/div/h3/strong")
ikiText = driver.find_element(By.XPATH,"//*[@id='collapse3']/div/div/div/div/div/div[2]/div/div/div[2]/div[1]/div/div/div/h3/strong")
ucText = driver.find_element(By.XPATH,"//*[@id='collapse3']/div/div/div/div/div/div[2]/div/div/div[3]/div[1]/div/div/div/h3/strong")
my_list = [birText.text,ikiText.text,ucText.text]
my_list = list(dict.fromkeys(my_list))
results = []
for query in my_list:
results.append(search(query, tld="com", num=10, stop=10, pause=2))
for result in results: print(*list(result),sep='\n')
希望我能解释清楚 我想打印列表中不包含“UNKNOWN”的 .texts。
简短的回答是您需要一个 if
语句来决定是否在您的数组中包含一个项目。
我还会添加一个 for
循环来删除一些重复:
def get_data(driver):
for i in range(3):
selector = f'//*[@id='collapse3']/div/div/div/div/div/div[2]/div/div/div[{i+1}]/div[1]/div/div/div/h3/strong'
element = driver.find_element(By.XPATH, selector)
if element.text != 'UNKNOWN':
yield element.text
有了这个功能,你现在可以做
my_list = list(get_data(driver))