【问题标题】:How can i extract href from this html using selenium?如何使用 selenium 从这个 html 中提取 href?
【发布时间】:2018-12-08 06:55:11
【问题描述】:

我想使用 selenium 从以下 html 中提取 href:

   <div class="resultsContainer clearfix" data-index="0"> 
        <div class="tableItem eventType">
            <span class="tileNumber">1.&nbsp;</span>         
            <span class="miles">0 mi</span>      
        </div>   
        <div class="tableItem eventTime">
            <span class="tileNumber">1.&nbsp;</span> 
                <ul>         
                    <li class="placeName clearfix">
                        <a class="placeName" href="/en/home/play/facility-listing/facility-details.html?facilityId=777EMBARCADEROROAD-CA-94301">Rinconada Park</a></li>    
                    <li class="timeNumber phoneNumber">(650) 463-4900</li>        
                </ul>       
        </div>       
        <div class="tableItem eventSize">     
            <ul>       
                <li>
                    <span class="eventNameType"># of Courts:</span>                     
                    <span class="eventNameValue">9</span>
                </li>          
                <li>
                    <span class="eventNameType">Court Size:</span> 
                    <span class="eventNameValue"> 36', 60', 78'</span>
                </li>
                <li>
                    <span class="eventNameType">Indoor Courts:</span>
                    <span class="eventNameValue">No</span>
                 </li>         
            </ul>       
        </div>       

        <div class="tableItem eventLocation">         
            <ul>           
                <li class="mileValue">0 mi</li>           
                <li>777 Embarcadero Road</li>           
                <li>Palo Alto, California, 94301</li>         
            </ul>       
        </div>       

        <div class="tableItem eventMoreInfo">         
            <div class="seeMoreBtn">           
                <a class="btn primaryBtn" href="/en/home/play/facility-listing/facility-details.html?facilityId=777EMBARCADEROROAD-CA-94301">MORE INFO</a>         
            </div>       
        </div>     
    </div>

我使用的 selenium(Python) 代码如下:

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains


# ----------------------------------------------HANDLING-SELENIUM-STUFF-------------------------------------------------

driver = webdriver.Chrome()
time.sleep(5)
driver.get('https://www.usta.com/en/home/play/facility-listing.html?searchTerm=&distance=5000000000&address=Palo%20Alto,%20%20CA')
wait = WebDriverWait(driver,5)
time.sleep(5)
links = driver.find_element_by_xpath("//div[@class='seeMoreBtn']/a")
print(links.text)
time.sleep(3)
for link in links:
    print(link.get_attribute("href"))
driver.close()

Following is the webpage from where i want to extract the links using the xpath above(more precisely links under MoreInfo button section)

在执行上述代码时,我收到此错误:

Traceback (most recent call last):
  File "E:/Python/CSV/scraperscrapero.py", line 23, in <module>
    for link in links:
TypeError: 'WebElement' object is not iterable

但是本页上面的XPATH包含了MoreInfo的5个Button。

我只是想获取 Button MoreInfo 标签下的那五个链接

【问题讨论】:

    标签: python-3.x selenium selenium-webdriver selenium-chromedriver


    【解决方案1】:

    您使用了find_element 而不是find_elements

    请更改以下行然后检查

    links = driver.find_elements_by_xpath("//div[@class='seeMoreBtn']/a")
    

    【讨论】:

      猜你喜欢
      • 2013-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-01
      • 2017-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多