【发布时间】:2020-03-22 18:25:08
【问题描述】:
当我用request 或axios scrape 时,它的体内没有任何东西。
<!DOCTYPE html><html>
<head>
<!--Deleted Head content -->
</head>
<body>
<ui-root></ui-root>
<script type="text/javascript" src="https://d13fzx7h5ezopb.cloudfront.net/www/v479/product/inline.bundle.js"></script><script type="text/javascript" src="https://d13fzx7h5ezopb.cloudfront.net/www/v479/product/polyfills.bundle.js"></script><script type="text/javascript" src="https://d13fzx7h5ezopb.cloudfront.net/www/v479/product/vendor.bundle.js"></script><script type="text/javascript" src="https://d13fzx7h5ezopb.cloudfront.net/www/v479/product/main.bundle.js"></script>
</body>
</html>
我想获得一个完整加载正文的 HTML 代码。所以我尝试实现 puppeteer。
在节点版本 v10.15.3 上运行 Puppeteer。
这是我的 Puppeteer 代码:
const browser = await puppeteer.launch({
args: [
"--no-sandbox",
"--disable-setuid-sandbox",
"--user-agent=Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"]
})
const page = await browser.newPage()
await page.goto(sourceUrl)
htmlCode = await page.evaluate(() => document.body.innerHTML)
console.log(htmlCode)
我试过了:
await page.goto(sourceUrl, {waitUntil:"networkidle0"})
await page.waitForFunction('window.status==="ready"')
await page.waitFor(5000)
它们似乎都不起作用。结果要么是空的正文/超时/页面崩溃
这是错误信息
(node:966) UnhandledPromiseRejectionWarning: Error: Page crashed!
at Page._onTargetCrashed (/mnt/c/users/junsoo/desktop/pikk/node_modules/puppeteer/lib/Page.js:216:24)
at CDPSession.Page.client.on.event (/mnt/c/users/junsoo/desktop/pikk/node_modules/puppeteer/lib/Page.js:124:56)
at CDPSession.emit (events.js:189:13)
at CDPSession.EventEmitter.emit (domain.js:441:20)
at CDPSession._onMessage (/mnt/c/users/junsoo/desktop/pikk/node_modules/puppeteer/lib/Connection.js:200:12)
at Connection._onMessage (/mnt/c/users/junsoo/desktop/pikk/node_modules/puppeteer/lib/Connection.js:112:17)
at WebSocketTransport._ws.addEventListener.event (/mnt/c/users/junsoo/desktop/pikk/node_modules/puppeteer/lib/WebSocketTransport.js:44:24)
at WebSocket.onMessage (/mnt/c/users/junsoo/desktop/pikk/node_modules/ws/lib/event-target.js:120:16)
at WebSocket.emit (events.js:189:13)
at WebSocket.EventEmitter.emit (domain.js:441:20)
我正在尝试抓取此页面:https://www.29cm.co.kr/product/178591
【问题讨论】:
标签: javascript node.js npm web-scraping puppeteer