我試圖從這個網頁中刮取到下一頁的鏈接。我知道如何使用css選擇器來抓取。但是,當我試圖使用xpath來決議同樣的內容時,事情就出錯了。這個是我得到的東西,而不是下一個頁面的鏈接。
const puppeteer = require("puppeteer")。
let url = "https://stackoverflow.com/questions/tagged/web-scraping"/span>;
(async ( ) => {
const browser = await puppeteer.launch({headless:false}) 。
const [page] = await browser.pages()。
await page.goto(url,{waitUntil: 'networkidle2'})。)
let nextPageLink = await page. $x("/a[@rel='next']", item => item. getAttribute("href") )。
// let nextPageLink = await page.$eval("a[rel='next']", elm => elm.href);
console.log("next page:"/span>,nextPageLink)。
await browser.close()。
})();
我怎樣才能用xpath來搜刮到下一頁的鏈接?
uj5u.com熱心網友回復:
page.$x(expression)回傳一個元素處理陣列。你需要解構或索引訪問來獲得陣列中的第一個元素。- 為了從這個元素句柄中獲得一個DOM元素屬性,你需要用元素句柄引數進行評估,或者使用元素句柄API。
const [nextPageLink] = await page.$x("/a[@rel='next']"/span>) 。 const nextPageURL = await nextPageLink.evaluation(link => link.href) 。或者:
const [nextPageLink] = await page.$x("/a[@rel='next']") 。 const nextPageURL = await (await nextPageURL. getProperty('href')).jsonValue()。轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/320231.html
標籤:
上一篇:在IE瀏覽器中打開pdf
