【发布时间】:2021-08-25 10:55:35
【问题描述】:
我已经花费了 4 个多小时并数着数,试图获取一个在网页上可见但在我尝试使用 Selenium 抓取它时不会拉取的元素。我什至尝试将直接 xpath 复制到元素,但仍然无法正常工作。在我的浏览器上检查页面显示结构是这样的。
<div class="flex-deprecated flex-items-xs-center">
<div>...<div>
<div style="position:relative">
<div class="row flex-xs-nowrap no-margin form-left form-box-container ">
<div class="form-box flex-xs-no-grow cursor-pointer ">
<svg class="margin-center">
<rect class="form-in-shape"></rect>
<text class="form-win-text">TEXT</text>
</svg>
</div>
<div class="form-box flex-xs-no-grow cursor-pointer ">...</div>
<div class="form-box flex-xs-no-grow cursor-pointer ">...</div>
<div class="form-box flex-xs-no-grow cursor-pointer ">...</div>
<div class="form-box flex-xs-no-grow cursor-pointer ">...</div>
<div class="row flex-items-xs-middle form-arrow-line no-margin left">...</div>
</div>
</div>
TEXT 是我要抓取的内容,我可以使用 class="form-box flex-xs-no-grow cursor-pointer " 找到所有 5 个 div 标签,但是当我找不到 svg 标签或 text 标签时尝试使用直接 xpath,它会找到 text 标记,但返回空字符串,我尝试获取标记内的文本。
这是我的代码,因为我目前不知道如何解决这个问题。
z = driver.find_element_by_xpath("//div[@class='sub-container head-to-head']/div[3]/div/div[@class='panel margin-bottom ']/div/div[@class='row']")
z1 = z.find_element_by_xpath(".//div[@class='col-xs-6']/div[@class='row']/div[@class='col-xs-12 col-sm-5 col-md-7 flex-deprecated flex-items-xs-middle flex-items-xs-center']/div/div[@class='visible-md-up hidden-xs-up']/div/div[@class='row']/div/div/div[2]/div[@class='row flex-xs-nowrap no-margin form-left form-box-container ']")
z2 = z1.find_elements_by_xpath(".//div[@class='form-box flex-xs-no-grow cursor-pointer ']")
try:
for i_ in range(0, 5):
ztemp1 = z2[i_].find_element_by_class_name("margin-center")
wait.until(EC.presence_of_element_located((By.CLASS_NAME, "form-with-text")))
#ztemp = ztemp1.find_elements_by_class_name("form-with-text")
ztemp =ztemp1.find_element_by_tag_name("text")
#print("TESTIN>>> {}".format(len(ztemp)))
print("SKKKKKK>>>>> {}".format(ztemp.text))
z3 = z2[i_].find_elements_by_xpath(".//*")
print('good here {}'.format(len(z3)))
except(NoSuchElementException):
print('Tag or Class not found')
当我尝试按类名查找text 标签时,它没有找到它,但是当我按标签名称搜索时它找到了它,但它是一个空字符串。这是我正在使用的网站的链接 [Source Site][1]
任何帮助和提示将不胜感激。 [1]:https://s5.sir.sportradar.com/betking/en/1/season/83706/headtohead/17/42/match/27751100
【问题讨论】:
标签: python-3.x selenium selenium-webdriver web-scraping