Как очистить URL, если в исходном коде нет элемента <a>? - PullRequest
0 голосов
/ 30 января 2019

Моя цель - очистить ссылку на каждый отель, но источник вообще не имеет элемента <a> .... что мне делать?Как сайт скрыл свою ссылку?

здесь должна быть ссылка для каждого имени ... но исходный код выглядит так:

<h3 class="hotel-name" data-selenium="hotel-name">Hilton Osaka</h3>

Добавлена ​​ссылка здесь

1 Ответ

0 голосов
/ 30 января 2019

Еще предстоит проделать определенную работу, так как название отеля отображается только при прокрутке вниз, но выводит ссылки по крайней мере и должно заставить вас работать

from selenium import webdriver
from bs4 import BeautifulSoup as soup

url = 'https://www.agoda.com/pages/agoda/default/DestinationSearchResult.aspx?city=9590&checkIn=2019-02-05&los=1&rooms=1&adults=2&children=0&cid=-218&languageId=1&userId=bce6a6f2-6f57-418a-9c86-487872685cda&sessionId=ku5ccopu4cm2yqjetfge1fa4&pageTypeId=1&origin=HK&locale=en-US&aid=130589&currencyCode=HKD&htmlLanguage=en-us&cultureInfoName=en-US&ckuid=bce6a6f2-6f57-418a-9c86-487872685cda&prid=0&checkOut=2019-02-06&priceCur=HKD&textToSearch=Osaka&productType=-1&travellerType=1'

# opening up connection, grabbing the page
driver = webdriver.Chrome('C:/chromedriver_win32/chromedriver.exe')
driver.get(url)

# html parsing
page_soup = soup(driver.page_source, "html.parser")
containers = page_soup.find_all("li", {'data-selenium':'hotel-item'})

for ele in containers:
    try:
        link = 'http://www.aggoda.com' + ele.find('a')['href']
    except:
        link = ''

    try:
        name = ele.find('h3').text
    except:
        name = ''

    print ('Hotel: %s\nLink: %s\n' %(name, link))


driver.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...