我試圖從this NCBI.gov page刮掉html。我需要包含#see-all URL片段,這樣我才能保證獲得搜索頁面,而不是從不正確的基因頁面檢索HTML頁面https://www.ncbi.nlm.nih.gov/gene/119016。檢索JavaScript使用Puppeteer呈現HTML
URL片段不會傳遞到服務器,而是被頁面客戶端的JavaScript用來(在這種情況下)創建完全不同的HTML,這是您在頁面中訪問時獲得的瀏覽器和「查看頁面源」,這是我想要檢索的HTML。 R readLines() ignores url tags followed by #
我第一次嘗試使用phantomJS,但它只是回到這裏ReferenceError: Can't find variable: Map描述的錯誤,似乎從phantomJS不支持該NCBI使用某些功能,從而消除了解決這一路線造成的。
我使用Node.js的使用評價以下JavaScript曾與木偶更大的成功:
const puppeteer = require('puppeteer');
(async() => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(
'https://www.ncbi.nlm.nih.gov/gene/?term=AGAP8#see-all');
var HTML = await page.content()
const fs = require('fs');
var ws = fs.createWriteStream(
'TempInterfaceWithChrome.js'
);
ws.write(HTML);
ws.end();
var ws2 = fs.createWriteStream(
'finishedFlag'
);
ws2.end();
browser.close();
})();
然而這回似乎是預渲染HTML。我如何(以編程方式)獲取我在瀏覽器中獲得的最終html?