Красивый суп и процесс findAll () - PullRequest
0 голосов
/ 12 мая 2018

Я пытаюсь очистить данные с сайта, используя следующий код. На сайте требовался метод декодирования, и я следовал решению @royatirek. Моя проблема в том, что container_a ничего не содержит. Я использую подобный метод на нескольких других сайтах, и он работает. Но на этом и нескольких других сайтах моя переменная container_a остается пустым списком. Приветствия

from urllib.request import Request, urlopen
from bs4 import BeautifulSoup as soup
my_url = 'http://www.news.com.au/sport/afl-round-3-teams-full-lineups-and- 
the-best-supercoach-advice/news-story/dfbe9e0e68d445e07c9522a138a2b824'
req = Request(my_url, headers={'User-Agent': 'Mozilla/5.0'})
web_byte = urlopen(req).read()
webpage = web_byte.decode('utf-8')
page_soup = soup(web_byte, "html.parser")
container_a = page_soup.findAll("div",{"class":"fyre-comment-wrapper"})

1 Ответ

0 голосов
/ 12 мая 2018

Содержимое, которое вы хотите проанализировать, динамически загружается с помощью JavaScript, и поэтому requests не выполнит эту работу за вас. Вы можете использовать selenium и ChromeDriver или любой другой драйвер для этого:

from selenium import webdriver
from bs4 import BeautifulSoup

driver = webdriver.Chrome()
driver.get("http://www.news.com.au/sport/afl-round-3-teams-full-lineups-and-the-best-supercoach-advice/news-story/dfbe9e0e68d445e07c9522a138a2b824")

Затем вы можете продолжить использовать bs4 по своему желанию, обратившись к источнику страницы, используя .page_source:

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