从href标签selenium webscraper中抽出html

时间:2019-11-18 18:41:16

标签: python selenium selenium-webdriver

我正在尝试提取此标签的特定内容:

<a href="/find-a-class/select-bike/1284372/?new=1" aria-label="Reserve Class with Charlotte on Thursday 21th, 5:30PM" class="open-modal reserve yellow-button" data-class-id="1284372" data-location="Studio Schedule" data-instructor="Charlotte" data-instructor-id="275" data-studio="Back Bay" data-class-type="Cycle" data-class-time="2019-11-21 17:30:00" tabindex="0">reserve</a>

我正在使用Selenium Webdriver,并尝试提取html片段。

我通过以下方式找到所有链接:

from selenium import webdriver
links = driver.find_elements_by_xpath('//a[@href]')

len(links)
>> 257

links[0]
>> <selenium.webdriver.remote.webelement.WebElement (session="4702ae34f7d8b96da2b70080e9a0d575", element="c234a7cb-64b9-416f-8a75-dab8b4051c39")>

我尝试过:

links[0]=.get_attribute('innerHTML')
>> ''
links[0]=.get_attribute('outerHTML')
>> '<a class="small-button gray-button-dark action-button-label" accesskey="k" href="#"></a>'

我希望能够从257个链接列表中退出,而这些链接只是定义了html标签一部分的链接,例如data-instructor-id="275"。如果257个链接都具有不同的讲师,那么其中的哪个来自讲师275。

我尝试使用links[0].get_attribute('data-instructor-id')尝试返回值275,但它返回None

1 个答案:

答案 0 :(得分:1)

我不确定您要做什么。如果您想获取data-instructor-id的属性值,请尝试

links = driver.find_elements_by_xpath('//a[@href]')
for link in links:
    print(link.get_attribute("data-instructor-id"))

编辑

links = driver.find_elements_by_xpath('//a[@href][@data-instructor-id]')
for link in links:
    print(link.get_attribute("data-instructor-id"))