[英]Scraping authenticated website in node.js
我想用 node.js 抓取我的大学网站 (moodle),但我还没有找到能够做到这一点的无头浏览器。 我使用 RoboBrowser 仅用 10 行代码在 python 中完成了它:
from robobrowser import RoboBrowser
url = "https://cas.upc.edu/login?service=https%3A%2F%2Fatenea.upc.edu%2Fmoodle%2Flogin%2Findex.php%3FauthCAS%3DCAS"
browser = RoboBrowser()
browser.open(url)
form = browser.get_form()
form['username'] = 'myUserName'
form['password'] = 'myPassword'
browser.submit_form(form)
browser.open("http://atenea.upc.edu/moodle/")
print browser.parsed
问题是该网站需要身份验证。 你能帮助我吗? 谢谢!
PD:我认为这很有用https://www.npmjs.com/package/form-scraper但我无法让它工作。
假设您想阅读第 3 方网站,并“抓取”特定信息,您可以使用Cheerio等库在Node.js中实现这一点。
Cheerio 是“专为服务器设计的核心 jQuery 的精益实现” 。 这意味着给定 DOM(或其一部分)的 String 表示,cheerio 可以像 jQuery 一样遍历它。
Max Ogden 的一个示例展示了如何使用request
模块从远程服务器获取 HTML,然后将其传递给cheerio
:
var $ = require('cheerio')
var request = require('request')
function gotHTML(err, resp, html) {
if (err) return console.error(err)
var parsedHTML = $.load(html)
// get all img tags and loop over them
var imageURLs = []
parsedHTML('a').map(function(i, link) {
var href = $(link).attr('href')
if (!href.match('.png')) return
imageURLs.push(domain + href)
})
}
var domain = 'http://substack.net/images/'
request(domain, gotHTML)
Selenium支持多种语言、多种平台和多种浏览器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.