-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathcrawler.js
More file actions
38 lines (35 loc) · 1.04 KB
/
crawler.js
File metadata and controls
38 lines (35 loc) · 1.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
const puppeteer = require('puppeteer')
function go(word) {
return new Promise(async function (resolve, reject) {
try {
let browser = await puppeteer.launch({
executablePath: '/usr/bin/chromium-browser',
headless: true,
})
let page = await browser.newPage()
await page.goto('http://dict.youdao.com/w/' + word)
let txt = await page.evaluate(() => {
let m = []
let i = 1
let collins = document.querySelector('.collinsToggle')
if (collins) {
for (let j = 0; j < collins.children.length; j++) {
collins.children[j].classList.remove('wt-collapse')
}
return collins.innerText
} else {
if (document.querySelector('#phrsListTab > div > ul > li')) {
return document.querySelector('#phrsListTab > div > ul > li').innerText
} else {
return 'no'
}
}
})
browser.close()
resolve(txt)
} catch (e) {
console.log('oops', e)
}
})
}
module.exports = go