访问页面的 HTML
Access a page's HTML
是否可以获取 link 并通过 link 访问其 HTML 代码?例如,我想从亚马逊拿一个 link 并将其放在我自己的 HTML 代码中,使用 JavaScript 到 getElementsByClassName
从 link 中获取价格] 并将其显示回我的 HTML 代码中。
有可能。您可以向亚马逊页面发出 GET 请求,该页面会在响应中为您提供 html ,您将有一个字符串,现在您需要对其进行格式化,上次我使用节点模块 jsdom 来做那。
更详细:
HTTP是我们用来向服务器请求数据的协议,我写了一个解释性的node js脚本:
const https = require('https');
const JSD = require('jsdom');
const { JSDOM } = JSD;
const zlib = require('zlib');
// The http get request
https.get('https://www.amazon.com', (response) => {
html = '';
// we need this because amazon is tricky and encodes the response so it is smaller hence it is faster to send
let gunzip = zlib.createGunzip();
response.pipe(gunzip);
// we need this to get the full html page since it is too big to send in one amazon divides it to chunks
gunzip.on('data', (chunk) => {
html += chunk.toString();
});
// when the transmittion finished we can do wathever we want with it
gunzip.on('end', () => {
let amazon = new JSDOM(html);
console.log(amazon.window.document.querySelector('html').innerHTML);
});
});
是否可以获取 link 并通过 link 访问其 HTML 代码?例如,我想从亚马逊拿一个 link 并将其放在我自己的 HTML 代码中,使用 JavaScript 到 getElementsByClassName
从 link 中获取价格] 并将其显示回我的 HTML 代码中。
有可能。您可以向亚马逊页面发出 GET 请求,该页面会在响应中为您提供 html ,您将有一个字符串,现在您需要对其进行格式化,上次我使用节点模块 jsdom 来做那。
更详细:
HTTP是我们用来向服务器请求数据的协议,我写了一个解释性的node js脚本:
const https = require('https');
const JSD = require('jsdom');
const { JSDOM } = JSD;
const zlib = require('zlib');
// The http get request
https.get('https://www.amazon.com', (response) => {
html = '';
// we need this because amazon is tricky and encodes the response so it is smaller hence it is faster to send
let gunzip = zlib.createGunzip();
response.pipe(gunzip);
// we need this to get the full html page since it is too big to send in one amazon divides it to chunks
gunzip.on('data', (chunk) => {
html += chunk.toString();
});
// when the transmittion finished we can do wathever we want with it
gunzip.on('end', () => {
let amazon = new JSDOM(html);
console.log(amazon.window.document.querySelector('html').innerHTML);
});
});