Красивый суп не дожидается полной загрузки страницы - PullRequest
0 голосов
/ 08 ноября 2019

Итак, используя мой код ниже, я хочу открыть URL-адрес веб-сайта квартиры и очистить веб-страницу. Единственная проблема заключается в том, что Beautiful Soup не ждет, пока вся веб-страница будет отображена. Квартиры не отображаются в HTML, пока они не загружены на странице, что занимает несколько секунд. Как мне это исправить?

from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup

my_url = 'https://xxxxx.com/properties/?sort=latest'

uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()

 page_soup = soup(page_html, "html.parser")

 containers = page_soup.findAll("div",{"class":"grid-item"})
#len(containers) is empty since the contents haven't been loaded yet!

1 Ответ

1 голос
/ 08 ноября 2019

Если вы хотите подождать, пока страница полностью загрузит свои данные, вам следует подумать об использовании селена, в вашем случае это может выглядеть так:

from bs4 import BeautifulSoup
from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options

url = "<URL>"

chrome_options = Options()  
chrome_options.add_argument("--headless") # Opens the browser up in background

with Chrome(options=chrome_options) as browser:
     browser.get(url)
     html = browser.page_source

page_soup = BeautifulSoup(html, 'html.parser')
containers = page_soup.findAll("div",{"class":"grid-item"})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...