Веб-очистка названия отеля и его цены?

#html #python-3.x #parsing #selenium-webdriver #beautifulsoup

#HTML #python-3.x #синтаксический анализ #selenium-webdriver #beautifulsoup

Вопрос:

Я новичок в python и пытаюсь очистить название и цену конкретного отеля из формы goibibo. Но каждый раз, когда он показывает вывод «Нет». Я не могу понять это.

Код:

 from selenium import webdriver
from bs4 import BeautifulSoup
import pandas as pd

import requests
from requests import get



driver=webdriver.Chrome("C:\Users\hp\Desktop\New folder\chromedriver.exe")

driver.get("https://www.goibibo.com/hotels/fihalhohi-island-resort-hotel-in-maldives-3641257667928818414/?hquery={"ci":"20200903","co":"20200904","r":"1-2-0","ibp":"v15"}amp;hmd=57c9d7df10ce2ccd7c8fa6e25f4961a9e2bfd39eec002b71e73c095ccec678b1755edc988f4cd5487a9cfba712fa5eb237dc2d5536cdeb75fecfaec0bfc0461f0c82c1fe7f95feb466a9a50609566a429b8bf31d8b3a4058c68a373f40919411fcb01f758fc7b1ff0846764e224629a9a423cd882cf963a63765c80233c253db9d1aeee5200a0a7bc860be97a52ef3df77f49aa906fbb53d10dd59707f1a01ced53756ceded90cbdd8ddec83bdaf5a7ce162f86cb0ed7e115362182c4b99d853f16c5f4e80622113ceadf4d80191000a9e84ded0531fde54fb8ab281943bc2bb7ad41d60a81ba59478e75ac61f6a58ace01e071429b0837292a94d8cfd4da1a5ef453856d6f7d46c6b1adb4abaa7a2ca8e955cb316afe5e220000346c85759a750fdee0887c402eb3ded5c1d054fb84df56afc7a64bc2b2f6c98222c948e80ff32bd88820398ec7b055f7bf27c60f31ebe7f2d1427302997b2b9da5db3aef2f81bac4c21729e84002fbe5afd065ea4c248aa115c405eamp;cc=PFamp;reviewType=gi")

content=driver.page_source

soup=BeautifulSoup(content,"html.parser")

soup.prettify()


soup_name=soup.find("h3",class_="dwebCommonstyles__SectionHeader-sc-112ty3f-5 HotelName__HotelNameText-sc-1bfbuq5-0 hMoKY")


print(soup_name.txt)



Output:

> None



  

Комментарии:

1. Можете ли вы поместить свой код в блок кода для удобства чтения?

2. @FriskySaga … я сделал

Ответ №1:

Вот код названия отеля. Цена зависит от номера, который пользователь выбирает в отеле, и общей цены для отеля нет.

 import requests
from bs4 import BeautifulSoup
url = "https://www.goibibo.com/hotels/fihalhohi-island-resort-hotel-in-maldives-3641257667928818414/?hquery={"ci":"20200903","co":"20200904","r":"1-2-0","ibp":"v15"}amp;hmd=57c9d7df10ce2ccd7c8fa6e25f4961a9e2bfd39eec002b71e73c095ccec678b1755edc988f4cd5487a9cfba712fa5eb237dc2d5536cdeb75fecfaec0bfc0461f0c82c1fe7f95feb466a9a50609566a429b8bf31d8b3a4058c68a373f40919411fcb01f758fc7b1ff0846764e224629a9a423cd882cf963a63765c80233c253db9d1aeee5200a0a7bc860be97a52ef3df77f49aa906fbb53d10dd59707f1a01ced53756ceded90cbdd8ddec83bdaf5a7ce162f86cb0ed7e115362182c4b99d853f16c5f4e80622113ceadf4d80191000a9e84ded0531fde54fb8ab281943bc2bb7ad41d60a81ba59478e75ac61f6a58ace01e071429b0837292a94d8cfd4da1a5ef453856d6f7d46c6b1adb4abaa7a2ca8e955cb316afe5e220000346c85759a750fdee0887c402eb3ded5c1d054fb84df56afc7a64bc2b2f6c98222c948e80ff32bd88820398ec7b055f7bf27c60f31ebe7f2d1427302997b2b9da5db3aef2f81bac4c21729e84002fbe5afd065ea4c248aa115c405eamp;cc=PFamp;reviewType=gi"
r = requests.get(url)
soup = BeautifulSoup(r.content, "lxml")
htag=soup.findAll('section',attrs={"class":"HotelDetailsMain__HotelDetailsContainer-sc-2p7gdu-0 kuBApH"})
for x in htag:
    print (x.find('h3').text)
  

Примечание: нет необходимости использовать selenium webdriver, если вы просто хотите получить содержимое веб-страницы. Beautifulsoup сам сделает это за вас