我正试图从https://hk.appledaily.com/search/apple搜集新闻信息。
我需要从div class="flex-feature"
获取新闻内容,但它只返回[]
。希望有人能帮忙,谢谢
from bs4 import BeautifulSoup
import requests
page = requests.get("https://hk.appledaily.com/search/apple")
soup = BeautifulSoup(page.content, 'lxml')
results = soup.find_all('div', class_ = "flex-feature")
print(results)
该页面上的数据是动态获取和呈现的(通过js)。因此,除非评估javascript,否则无法获取数据
刮取数据的一种方法是使用无头浏览器。
下面是一个使用pyppeteer的示例
输出:
如果您在浏览器中查看页面源代码,您将看到
flex-feature
在HTML中不存在。这是服务器在呈现JavaScript和所有动态内容之前最初发回的HTML。这也是requests.get
将提供给您的相同HTML([])要访问这些元素,您可能需要使用Selenium之类的东西,这将允许您自动化浏览器并呈现动态加载页面的JavaScript。请查看我对类似问题的回答here,以获得一些见解
其他资源:
相关问题 更多 >
编程相关推荐