因为接下来要做抓取,可能要用到puppeteer, 就重新有看了一下。
需要安装puppeteer. npm install puppeteer --save 会自动下载一个Chromium, 如果不需要可能不用下。
puppeteer 超时问题处理
js中的for of 类似 python的for in
这里的抓取匹配的内容,用的都是chrome里面的selector. 当然,有些还是得你自己写,如何检查?可以chrome里面安装下面的插件
css-selector-tester
puppeteer 官方文档
page.evaulate里面的内容是没法打印出来的,如果需要打印,可以参考 page.evaluate 里面打印日志
page.evaluate 是没法直接朝里面传递参数的。如果需要像例子当中那样传递,可以这样
puppeteer 的一些其他的使用文章
https://juejin.im/post/5d4059305188255d38489a8c
https://www.qikegu.com/docs/4539
https://github.com/checkly/puppeteer-examples
chrome实例 远程部署
【puppeteer 简单使用和一个简单的case】这里给个简单的抓取的例子
const puppeteer = require('puppeteer')
const url = 'https://www.stoloto.ru/ruslotto/archive'
const selector = '#content > div.data.drawings_data'
const selectorAll = '#content > div.data.drawings_data .elem'const Craw = async (url, selectorAll) => {
const browser = await puppeteer.launch() // 使用这种方式并不高效,因为得打开chrome. 生产里面最好还是用connect的方式,这样维护一个打开的chrome,打开页面就可以了。
const page = await browser.newPage()
page.on('console', consoleObj => console.log(consoleObj.text()))
const waitfor = selector
await page.setDefaultNavigationTimeout(0)
await page.goto(url)
await page.waitForSelector(waitfor)
const CrawResult = await page.evaluate((selectorAll) => {
const dataList = []
const results = document.querySelectorAll(selectorAll)
for (const element of results) {
const data = https://www.it610.com/article/{}
data.drawDate = element.querySelector('.draw_date').innerText
data.draw = element.querySelector('.draw').innerText
data.drawUrl = element.querySelector('.draw a').href
data.numbers = element.querySelector('.numbers_wrapper').innerText
data.super_prize = element.querySelector('.super_prize').innerText
dataList.push(data)
}
return dataList
}, selectorAll)browser.close()
return CrawResult
}// 下面是两种外部调用async函数的方式。// (async () => {
//const data = https://www.it610.com/article/await Craw(url, selectorAll)
//console.log(data)
// })()Craw(url, selectorAll).then(value => {
console.log(value)
})
推荐阅读
- 爬虫|若想拿下爬虫大单,怎能不会逆向爬虫,价值过万的逆向爬虫教程限时分享
- python|尚硅谷python爬虫(二)-解析方法
- web挖洞|HACK学习黑帽子Python--漏洞检测脚本快速编写
- Pyecharts|Pyecharts 猎聘招聘数据可视化
- Python爬虫笔记|Python爬虫学习笔记_DAY_17_Python爬虫之使用cookie绕过登录的介绍【Python爬虫】
- Python爬虫笔记|Python爬虫学习笔记_DAY_19_Python爬虫之代理ip与代理池的使用介绍【Python爬虫】
- Python爬虫笔记|Python爬虫学习笔记_DAY_18_Python爬虫之handler处理器的使用【Python爬虫】
- python|用 Python 写一副春联&福字,把最好的祝福,送给重要的人
- 爬虫|淘宝商品数据爬取
- 爬虫学习历程小记