Python爬虫之JavaScript动态渲染页面爬取(Pyppeteer的使用)
warning:
这篇文章距离上次修改已过180天,其中的内容可能已经有所变动。
import asyncio
from pyppeteer import launch
async def run():
browser = await launch()
page = await browser.newPage()
await page.goto('https://example.com')
# 如果页面使用JavaScript动态渲染,需要等待页面加载完成
await page.waitForSelector('selector_of_element_to_wait_for', { 'timeout': 30000 })
content = await page.evaluate('''() => {
// 这里写入你需要从页面中获取数据的JavaScript代码
// 例如,获取某个元素的文本内容
const element = document.querySelector('selector_of_element');
return element.textContent;
}''')
print(content)
await browser.close()
asyncio.get_event_loop().run_until_complete(run())
这段代码使用了pyppeteer
库来启动一个浏览器实例,然后打开了指定的网页。在页面加载完成后,使用evaluate
函数执行了一段动态获取页面数据的JavaScript代码。这里的selector_of_element
和selector_of_element_to_wait_for
需要替换成实际的CSS选择器。
评论已关闭