python+selenium网页多元素查找,无法进行一一匹配
1.在爬取天眼查网站时,遇到网页有多个元素需要进行一一匹配,能够通过xpath找到多元素,但是进行一一匹配时,遇到问题,看了selenium官方文档,没有找到方法,希望大家能够帮一下忙,谢谢。
2.代码如下:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
def get_final_beneficiary(company): #用来获取最终受益人
global browserbrowser = webdriver.Chrome()
browser.maximize_window()
company_name = company
url = 'https://www.tianyancha.com/'
browser.get(url)
wait = WebDriverWait(browser,10)
input = wait.until(EC.presence_of_element_located((By.XPATH,'//*[@id="page-container"]/div[1]/div/div[3]/div[2]/div[1]/div/input')))
submit = wait.until(EC.element_to_be_clickable((By.XPATH,'//*[@id="page-container"]/div[1]/div/div[3]/div[2]/div[1]/button')))
input.send_keys(company_name)
submit.click()
company_info = wait.until(EC.element_to_be_clickable((By.XPATH,'//*[@id="page-container"]/div/div[2]/section/main/div[2]/div[2]/div/div/div[2]/div[2]/div[1]/div[1]/a')))
company_info.click()
current_windows = browser.window_handles #以下这两句都是用来切换标签页的
browser.switch_to_window(current_windows[-1])
target = browser.find_element_by_xpath('//div[@data-dim="staff"]')
browser.execute_script("arguments[0].scrollIntoView();", target) #拖动到可见的元素去
try:
target = browser.find_elements_by_xpath('//div[@data-dim="staff"]//div[@class="tags-list"]') #用来获取天眼查标签,例如最终受益人标签,大股东标签等。
total_final_beneficiary = len(target)
for final_beneficiary in target :
name = final_beneficiary.get_attribute('textContent')
if '最终受益人' in name:
final_beneficiary = browser.find_element_by_xpath('//div[@class="tags-list"]/preceding-sibling::div[1]').text #..代表父节点,这里是最终受益人的名字
stock_hold = browser.find_element_by_xpath('//div[@class="tags-list"]/../../../following-sibling::td[3]').text.rstrip("股权链") #这里是受益人的股份占比
print(final_beneficiary,stock_hold)
else:
print('无法找到最终受益人,需要层层穿透或者用会员版查询')
except:
print('无法找到最终受益人,需要层层穿透或者用会员版查询')
traceback.print_exc()
get_final_beneficiary('成都和润新视界企业管理有限公司')
想要的效果:只要查找到最终受益人标签的,将其名字和持股比例打印出来就行了,但是现在的问题是:browser.find_element_by_xpath,永远都只能找出来第一个最终受益人的名字和持股比例,无法达到效果,另外,图片里面只是一种情况,可能有的只是前两个是最终受益人或者第一个是最终受益人,所以需要通过最终受益人的标签来查找股东名字和持股比例,昨天搜索了一晚上,始终没有找到方法,麻烦大家了。
以上是 python+selenium网页多元素查找,无法进行一一匹配 的全部内容, 来源链接: utcz.com/p/938499.html