BeautifulSoup пустой массив как результат - PullRequest
0 голосов
/ 17 июня 2020

Я новичок в 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 веб-сайта ??

1 Ответ

0 голосов
/ 17 июня 2020

Поскольку контент загружается динамически, вы не можете напрямую использовать 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 каютами

...