【发布时间】:2021-06-09 18:34:23
【问题描述】:
我是网络抓取的新手,我正在尝试在类似 https://www.youtube.com/results?search_query=nodejs+tutorial 的搜索查询中通过网络 抓取 youtube 获取视频标题,我正在尝试使用 node.js 来实现这一点
到目前为止,我的代码如下所示:
const express= require('express');
const ejs =require('ejs');
const got = require('got');
async function scrape(url){
try {
const response = await got(url);
return response.body;
}
catch (error) {
return error.response.body;
}
}
const app=express();
app.use(express.json());
app.use(express.urlencoded({extended:true}));
app.set('view engine','ejs');
app.get('/',(req,res)=>{
res.render('./index/index.ejs');
});
app.post('/',async(req,res)=>{
console.log(req.body);
var scrape_html= await scrape(`https://www.youtube.com/results?search_query=${req.body.url}`);
res.json({'html':scrape_html});
});
app.listen(3000,()=>{
console.log('server now listening...');
});
但是当您在浏览器中实际访问该站点时,scrape_html 看起来并不像实际的 html,为什么会这样?如何获取网页的实际 html?和cookie有关系吗?
【问题讨论】:
-
使用他们的 API 怎么样? developers.google.com/youtube/v3/docs/search/list
-
@germanio 我考虑过使用 API,但它有点限制,我正在从事的项目有点难以解释,但如果我能在有人访问该网站
标签: javascript node.js web-scraping