美丽的汤和findAll()过程

时间:2018-05-12 01:26:17

标签: python beautifulsoup

我正在尝试使用以下代码从网站抓取数据。该网站需要解码方法,我遵循@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 :(得分:1)

您要解析的内容正由JavaScript动态加载,因此requests无法为您完成工作。您可以使用seleniumChromeDriver或任何其他驱动程序:

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")

然后,您可以使用.page_source访问页面来源,继续使用bs4:

page_soup = BeautifulSoup(driver.page_source, "html.parser")
container_a = page_soup.findAll("div",{"class":"fyre-comment-wrapper"})