Прекрасная Суповая находка не возвращается - PullRequest
0 голосов
/ 20 января 2019

найдено, возвращается "нет"

Вот весь код, который я пробовал, и HTML, с которым я работаю:

url = "https://www.instagram.com/p/BszEBehhwet/"
a = urlopen(url)
html = a.read()
a.close()
page_soup = soup(html, "html.parser")

found = page_soup.find("div", {"class":"P9YgZ"})
<div class="KlCQn G14m- EtaWk">
    <ul class="k59kT">
        <li class="gElp9 " role="menuitem">
            <div class="P9YgZ">
                <div class="C7I1f X7jCj">
                    <div class="C4VMK">
                        <h2 class="_6lAjh">
                            <a class="FPmhX notranslate TlrDj" 
                            title="ray.walker00" 
                            href="/ray.walker00/">ray.walker00
                            </a>
                        </h2>
                        <span>Jan. 18, 2019 // Awesome
</span>
</div>
</div>
</div>
</li>
</ul>
</div>

Я бы хотел вернуть класс div P9YgZ

1 Ответ

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

Как я уже отмечал в комментариях, страница, с которой вы работаете, настолько сильно зависит от javascript, что только urllib не сможет ее обрезать.Вот пример использования Selenium WebDriver, который получает элемент с этим классом.Вам нужно будет загрузить ChromeDriver и изменить код так, чтобы он указывал, где он находится в вашей системе:

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


def main():

    options = Options()
    options.add_argument("--headless")

    driver = webdriver.Chrome(
        options=options, executable_path="C:\chromedriver\chromedriver.exe"
    )

    try:
        driver.get("https://www.instagram.com/p/BszEBehhwet/")

        soup = BeautifulSoup(driver.page_source, "html.parser")
        print(soup.find("div", {"class": "P9YgZ"}))

    finally:
        driver.quit()


if __name__ == "__main__":
    main()

Результат:

<div class="P9YgZ"><div class="C7I1f X7jCj"><div class="C4VMK"><h2 class="_6lAjh"><a class="FPmhX notranslate TlrDj" href="/thetremason/" title="thetremason">thetremason</a></h2><span>How I’m finna pull up to ya function.</span></div></div></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...