Я новичок в beautifulSoup и хотел бы знать, почему, когда я пытаюсь получить цены на лодки этого веб-сайта, он возвращает пустой массив?
Вот мой код:
from bs4 import BeautifulSoup import requests source = requests.get('https://www.moorings.co.uk/destinations/americas/brazil/paraty-sailing-holidays#!date=2020-8-1&departureId=5422461&yachtId=91&price=3444&sortOrder=Price%20low%20to%20high&showAllDepartures=false&hullType=All&length=All&yachtClass=All&numberOfCabins=All&numberOfDays=7&numberOfPassengers=2&numberOfToilets=All&numberOfShowers=All&productType=1') page_soup = BeautifulSoup(source.text, 'html.parser') pages = page_soup.find_all("h4", {"class":"text-align-left"}) print(len(pages)) print(pages)
Он возвращает пустой массив, поэтому length = 0
Скажите, пожалуйста, что я делаю не так ...
Если это невозможно, можно ли получить текст Crtl-Shift-I, используя python веб-сайта ??
Поскольку контент загружается динамически, вы не можете напрямую использовать beautifulsoup. Сначала вам нужно будет интерпретировать html / javascript, что приведет к обновлению dom фактической информацией о лодках.
Например, вы можете использовать селен.
from selenium import webdriver from bs4 import BeautifulSoup driver = webdriver.Chrome("C:\\Users\\kuehn\\Downloads\\chromedriver_win32\\chromedriver") driver.get('https://www.moorings.co.uk/destinations/americas/brazil/paraty-sailing-holidays#!date=2020-8-1&departureId=5422461&yachtId=91&price=3444&sortOrder=Price%20low%20to%20high&showAllDepartures=false&hullType=All&length=All&yachtClass=All&numberOfCabins=All&numberOfDays=7&numberOfPassengers=2&numberOfToilets=All&numberOfShowers=All&productType=1') html = driver.page_source soup = BeautifulSoup(html, features='lxml') for tag in soup.find_all("h4", {"class":"text-align-left"}): print(tag.text)
результат для меня был тогда
PS C: \ stackoverflow \ beautiful_soup> python. \ main.py
DevTools слушает ws: //127.0.0.1: 53420 / devtools / browser / d86a7c8b-d960-4b45-8849-2d09b7bbebda
Moorings 413-3-каютный однокорпусный
Moorings 419-3-каютный однокорпусный
Причальный 45-3-каютный однокорпусный
Причалы 51,4 - однокорпусный корпус с 4 каютами
Причалы 413 - Монокорпус с 3 каютами