Skip to content

Instantly share code, notes, and snippets.

@tpai
Last active November 2, 2020 13:50
Show Gist options
  • Select an option

  • Save tpai/2356257ce73dce0701f0 to your computer and use it in GitHub Desktop.

Select an option

Save tpai/2356257ce73dce0701f0 to your computer and use it in GitHub Desktop.
A web crawler sample based on nightwatch.

Instruction

  1. download poe.js and package.json

  2. install require modules

    $ npm install

  3. copy examples/ and lib/ at current folder

    $ cp node_modules/nightwatch/examples $ cp node_modules/nightwatch/lib

  4. create tests/ folder

    $ mkdir tests

  5. be sure to modify the acc and pwd variable in poe.js

  6. run command below

    $ nightwatch --test tests/poe.js

{
"name": "nightwatch crawler",
"description": "A web crawler sample based on nightwatch.",
"version": "0.0.1",
"author": {
"name": "tonypai",
"email": "tony77794@gmail.com"
},
"homepage": "https://github.com/tpai",
"dependencies": {
"nightwatch": ">=0.5.33",
"cheerio": ">=0.18.0"
}
}
module.exports = {
tags: ['poe'],
'Get POE Reward Images' : function (client) {
var cheerio = require("cheerio")
var acc = "<your-account>"
var pwd = "<your-password>"
client
.url('http://web.poe.garena.tw/login')
.waitForElementVisible('body', 1000)
.assert.title('Garena')
.assert.visible('#sso_login_form_account')
.setValue('#sso_login_form_account', acc)
.setValue('#sso_login_form_password', pwd)
.waitForElementVisible('#confirm-btn', 1000)
.click('#confirm-btn')
.pause(2000)
.assert.visible('div.tab-links')
.url("http://web.poe.garena.tw/account/view-profile/"+acc+"/events")
.source(function(result) {
$ = cheerio.load(result.value)
var images = $("div.reward img")
for(var i=0;i<images.length;i++) {
console.log($(images[i]).attr("src"));
}
})
.end();
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment