美文网首页
node 爬虫微博热搜

node 爬虫微博热搜

作者: webmrxu | 来源:发表于2022-01-14 15:45 被阅读0次

这个是写的第二个版本,第一个版本爬虫已经不能使用了。第一个版本直接使用的是axios get请求获取页面字符串,使用 cheerio 对字符串进行解析,获取热搜数据。考虑使用axios 是他轻量级,在云服务中占用的内存最少(渣渣性能服务器,不得不考虑内存问题)。

代码如下,最新的微博热搜有进行改版,需要使用cookie 才能爬微博热搜数据,所以选择使用爬虫最终武器,pupetter。

const weiboHotUrl = "https://s.weibo.com/top/summary?cate=realtimehot";
const puppeteer = require("puppeteer");
const spider = () => {
  return new Promise(async (resolve, reject) => {
    const browser = await puppeteer.launch({ headless: false });
    const page = await browser.newPage();
    await page.setExtraHTTPHeaders({
      // ':authority':'s.weibo.com',
      // ':method':' GET',
      // ':path':'/top/summary?cate=realtimehot',
      // ':scheme':' https',
      // 'accept':' text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
      // 'accept-encoding':' gzip, deflate, br',
      // 'accept-language':' zh-CN,zh;q=0.9',
      // 'cookie':' SUB=_2AkMWvFaxf8NxqwJRmP4RzG7gZY91wgzEieKg4KdqJRMxHRl-yT8XqhxdtRB6PTx4UAWr2-kBQwZ1HYArN4YAW2cMS6CL; SUBP=0033WrSXqPxfM72-Ws9jqgMF55529P9D9Whkm-rFSm0yR_CvgvzlZe42; _s_tentry=passport.weibo.com; Apache=5375211003204.768.1642125632605; SINAGLOBAL=5375211003204.768.1642125632605; ULV=1642125632625:1:1:1:5375211003204.768.1642125632605:',
      // 'sec-ch-ua':' " Not A;Brand";v="99", "Chromium";v="96", "Google Chrome";v="96"',
      // 'sec-ch-ua-mobile':' ?0',
      // 'sec-ch-ua-platform':' "macOS"',
      // 'sec-fetch-dest':' document',
      // 'sec-fetch-mode':' navigate',
      // 'sec-fetch-site':' none',
      // 'sec-fetch-user':' ?1',
      // 'upgrade-insecure-requests':' 1',
      'user-agent':' Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36',
    });
    await page.goto(weiboHotUrl);
    page.on('load', async() => {
      let list = [];
      const elements = await page.$$('#pl_top_realtimehot tbody>tr');
      elements.forEach(async ele => {
        const item = await ele.$eval('.td-02>a', node => {
          return {
            title: node.innerText,
            url: "https://s.weibo.com" + node.getAttribute('href')
          }
        });
        list.push(item);
        if (list.length === elements.length) {
          console.log(list);
          resolve(list);
        }
      })
    });
  })
}
// spider();
module.exports = spider;

相关文章

  • node 爬虫微博热搜

    这个是写的第二个版本,第一个版本爬虫已经不能使用了。第一个版本直接使用的是axios get请求获取页面字符串,使...

  • Java爬虫——微博热搜

    前言 自从写完关于Lifecycle的文章后就没有发现其他有兴趣的源码了,所以呢,我决定看看写写后台代码,尝试一波...

  • node puppeteer爬虫,爬取微博热搜数据

    确保自己熟练使用async与await以及分析dom结构 npm i puppeteer 在node引用 尝试在无...

  • 微博热搜

    乌烟瘴气的微博 整天不是这个出轨就是那个出轨 空口白牙,不用负法律责任哈 也不用发什么声明了,反正不愿意相信的人还...

  • 微博热搜

    关于热搜可以说每个人都有不同的看法!以前的我觉得刷热搜真有意思,可以看到好多有意思的事!追星之后我突然觉得,热搜也...

  • 微博热搜

    今天的微博热搜,下面这3条引起了我的关注:张云雷 女人连家务活都干不好、六里屯借到否认陈羽凡报道社区戒毒所和张柏芝...

  • 微博热搜

    关注度高压力也大,每次版本迭代都是技术上“黑白”的较量,正如记者说的那样凡是有利益的存在就会推动有人去做,无法避免...

  • 你在等着我回来,我在等着蛙寄明信片回来。

    没有微博热搜的第6天,想他。 在微博热搜撤下的时候,我的世界安静了不少。 随即我就发了一条微博:「没有微博热搜的日...

  • 微博热搜消失的那段时间,你慌了吗?

    01 今天,是微博热搜回归的第n天。想想,没有热搜的春节,多少人会抓狂? 前段时间,微博发布热搜整改,热搜消失的话...

  • node.js 抓包微博热搜

    1.需要用到superagent以及cheerio模块 记得安装 2.node serve.js 即可看到效果

网友评论

      本文标题:node 爬虫微博热搜

      本文链接:https://www.haomeiwen.com/subject/daiacrtx.html