Python: найти элемент по ссылке - PullRequest
0 голосов
/ 10 мая 2018

Я использовал веб-драйвер Chrome для очистки данных с веб-сайта, но я не знаю, как извлечь данные из href.

HTM:

<div class="buySearchResultContent">
  <ul id="CARS_LIST_DATA">
      <li class="seo_list" data-seo_name="440285">
        <div class="buySearchResultContentImg">
          <a href="carinfo-333285.php">
            <img src="carpics/9400180056/290x200/20180305101502854_4567823.jpg" srcset="carpics/9400180056/290x200/20180305101502854_9098765.jpg 290w, carpics/9400180056/435x300/20180305101502854_00000.jpg 435w , carpics/9400180056/720x520/20180305101502854_00001.jpg 720w" sizes="(min-width: 992px) 75vw, 90vw" alt="auto">
          </a>

Мой код:

driver = webdriver.Chrome("C:/chromedriver.exe")
url = "https://www.asdf.com.tw/price-02.php?v=3&brand=lisa&model=lulu&year1=2009&year2=2018&page=1"
driver.get(url)
content=driver.find_element_by_class_name('buySearchResultContentImg')
print(content)

Что я хочу извлечь, это "carinfo-333285.php".Спасибо!

Ответы [ 3 ]

0 голосов
/ 10 мая 2018

В соответствии с HTML, который вы предоставили для извлечения атрибута href, вы можете использовать любой из следующих Стратегий локатора :

  • css_selector:

    myHref = driver.find_element_by_css_selector("div.buySearchResultContentImg > a").get_attribute("href")
    
  • xpath:

    myHref = driver.find_element_by_xpath("//div[@class='buySearchResultContentImg']/a").get_attribute("href")
    
0 голосов
/ 10 мая 2018

Я не слишком много знаю о питоне, пожалуйста, попробуйте это

Jpg_href= driver.find_element_by_xpath("//div[@class='buySearchResultContentImg']/a[@href='carinfo-333285.php']").get_attribute("href")
0 голосов
/ 10 мая 2018

Попробуйте следующий код:

from selenium.common.exceptions import NoSuchElementException
try:
    a_element = driver.find_element_by_xpath('//div[contains(@class, 
                               "buySearchResultContentImg")]/a[@href]')
    link = a_element.get_attribute("href")
except NoSuchElementException:
    link = None
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...