【Puppeteer】爬虫脚本中插入 jQuery 的方法
利用 Puppeteer 操作无头浏览器进行数据爬取的时候,如果 targetPage 已经引入了jQuery 则可以直接用 $ 操作DOM结构,方法是声明一个变量
var $ = window.$ var items = $('.list-wp a')
如果没有引入可以自行插入 jQuery 方便接下来的DOM操作
await page .mainFrame() .addScriptTag({ url: 'https://cdn.bootcss.com/jquery/3.2.0/jquery.min.js' })
另外我发现有一些网站即使已经引用了jQuery 也无法 使用 window.$ 获取 $ 方法,所以最好每次都在脚本中直接自行引入一个 jQuery 完整脚本如下(以爬取站酷首页列表为例)
const puppeteer = require('puppeteer') void(async () => { const browser = await puppeteer.launch({ headless: true }) const page = await browser.newPage() await page.goto('https://www.zcool.com.cn') await page .mainFrame() .addScriptTag({ url: 'https://cdn.bootcss.com/jquery/3.2.0/jquery.min.js' }) await page.waitFor(2000) const result = await page.evaluate(() => { var items = $('.card-box') var links = [] if (items.length >= 1) { items.each((index, item) => { let it = $(item) let rate = Number(it.find('.statistics-tuijian').text()) let title = it.find('.card-info a').text().replace(/\s+/g, '') let poster = it.find('img').attr('src') links.push({ title, rate, poster }) }) } return links }) console.log(result) })()
相关推荐
EdwardSiCong 2020-11-23
85477104 2020-11-17
hhanbj 2020-11-17
81427005 2020-11-11
seoppt 2020-09-13
honeyth 2020-09-13
WRITEFORSHARE 2020-09-13
84483065 2020-09-11
momode 2020-09-11
85477104 2020-08-15
83510998 2020-08-08
82550495 2020-08-03
tthappyer 2020-08-03
84901334 2020-07-28
tthappyer 2020-07-25
TONIYH 2020-07-22
tztzyzyz 2020-07-20
83510998 2020-07-18
81463166 2020-07-17