V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
WishMeLz
V2EX  ›  程序员

天天看你们制作各种摸鱼网页。我直接贡献一个 node 抓取热点的代码。(低端版爬取网页数据)

  •  
  •   WishMeLz · Apr 10, 2021 · 3476 views
    This topic created in 1843 days ago, the information mentioned may be changed or developed.

    休息天没事做,小菜鸡一个。请多多指教。

    初始化一个请求的方法

    const cheerio = require('cheerio');
    const request = require('request');
    const iconv = require('iconv-lite');
    function http(url, decode = 'utf8') {
        return new Promise((resolve, rejext) => {
            request({ url, encoding: null }, function (error, response, body) {
                if (!error && response.statusCode == 200) {
                    var buf = iconv.decode(body, decode);//获取内容进行转码
                    var $ = cheerio.load(buf); //初始化
                    resolve($)
                } else {
                    rejext(error)
                }
            });
        })
    }
    module.exports = http
    
    

    使用

    // 微博热搜
    const http = require('./http')
    let url = 'https://s.weibo.com/top/summary'
    http(url)
        .then(res => {
            var $ = res;
            var table = $('#pl_top_realtimehot > table > tbody').find('tr .td-02 a')
            var resData = []
            table.each((i, e) => {
                resData.push({
                    index: i,
                    title: $(e).text(),
                    url: "https://s.weibo.com" + $(e).attr('href')
                })
    
            })
            console.log(resData);
        })
        .catch(err => {
            console.log(err);
        })
    
    
    15 replies    2021-04-11 22:22:12 +08:00
    zxCoder
        1
    zxCoder  
       Apr 10, 2021
    啊这。。。
    learningman
        2
    learningman  
       Apr 10, 2021 via Android   ❤️ 1
    建议发去 CSDN,他们一定会谢谢你的
    j777
        3
    j777  
       Apr 10, 2021   ❤️ 1
    这种玩意儿也值得发出来?
    winnerczwx
        4
    winnerczwx  
       Apr 10, 2021   ❤️ 2
    人家发出来又不影响你们什么, 楼上何必冷嘲热讽
    yyyb
        5
    yyyb  
       Apr 10, 2021   ❤️ 1
    楼上的楼上发个值得的玩意儿
    GG668v26Fd55CP5W
        6
    GG668v26Fd55CP5W  
       Apr 10, 2021   ❤️ 1
    你贡献了代码,那我贡献一个热点,HackerNews 的新闻的中译列表,url 规律是 HN-日期,比如:
    https://hicms.eu.org/p/HN-20210410
    3dwelcome
        7
    3dwelcome  
       Apr 11, 2021   ❤️ 1
    挺好的,路过支持一下。
    写代码和写文章一样,是为了让别人看懂,不是写一堆复杂代码自己一个人嗨。楼主这个一眼就能懂,这点就很赞。
    谁都是新手阶段过来的,唯有才能笑到最后,楼主加油。
    Lxxyx
        8
    Lxxyx  
       Apr 11, 2021
    挺好的,支持 +1 。

    谁都有菜鸟的时候,能写出比较工整可用的代码已经很了不起了,加油!
    labulaka521
        9
    labulaka521  
       Apr 11, 2021 via iPhone
    学到了
    Smurf
        10
    Smurf  
       Apr 11, 2021
    gogogo, 请把保护打在公屏上。资瓷
    ji39
        11
    ji39  
       Apr 11, 2021
    谁请解析下 return new Promise 这行代码
    WishMeLz
        12
    WishMeLz  
    OP
       Apr 11, 2021 via iPhone
    @ji39 异步呀
    WishMeLz
        13
    WishMeLz  
    OP
       Apr 11, 2021 via iPhone
    @learningman 不敢去,献丑了
    WishMeLz
        14
    WishMeLz  
    OP
       Apr 11, 2021 via iPhone
    @3dwelcome 多谢,嘿嘿
    WishMeLz
        15
    WishMeLz  
    OP
       Apr 11, 2021 via iPhone
    @Lxxyx 多谢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4721 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 78ms · UTC 01:03 · PVG 09:03 · LAX 18:03 · JFK 21:03
    ♥ Do have faith in what you're doing.