V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
miekion
V2EX  ›  问与答

各位 18CM,请教一个问题

  •  
  •   miekion · 2020-04-26 01:51:42 +08:00 · 4501 次点击
    这是一个创建于 1678 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如何爬取需要搜索的结果呢? 现在需要爬校图书馆的馆藏检索内容,无奈大学服务器实在太差,搜一本书需要很久才出来检索内容。。。 现在的想法就是能不能爬取整个图书馆的馆藏内容,直接放入我自己的数据库里。。。。 虽然想法很不现实,但是我想的是用现成的书名字典去搜,同时附带一些关键字:电脑、编程、网络、分析。。等等词语,然后一点点的爬内容,不知道各位有没有什么好的办法。。感觉我这个想法效率不是很高 😭

    19 条回复    2020-04-26 13:51:12 +08:00
    WEBUG
        1
    WEBUG  
       2020-04-26 01:55:46 +08:00 via Android
    如果是找爬虫工具的话,有个可视化爬虫 spider-flow 很好用不会写代码也可以上手。
    miekion
        2
    miekion  
    OP
       2020-04-26 01:57:27 +08:00 via iPhone
    @WEBUG 感谢回复……我现在的想法是怎么把校图书馆馆藏检索的内容全部爬下来,也就是要爬需要关键字搜索的内容😂
    miekion
        3
    miekion  
    OP
       2020-04-26 02:00:58 +08:00 via iPhone
    我现在的想法是这样的,应该比用字典漫无目的的爬取好很多:
    1.虽然查询速度很慢,在给用户提供搜索时,还是使用图书馆提供的检索接口
    2.利用用户搜索的关键词,先查一遍数据库中是否已有关键词内容,否则把本次请求的内容放入数据库中,下次搜索时进行判断,如果数据库已有就不再请求校图书馆提供的检索借口

    不知道各位有什么见解,请求指教
    mason961125
        4
    mason961125  
       2020-04-26 02:01:19 +08:00 via iPhone
    最大的问题是,爬完了可能会有人来找你……
    GPLer
        5
    GPLer  
       2020-04-26 02:15:06 +08:00
    @mason961125 你可能理解错了,校图书馆这种东西只能检索书目,不能检索内容。
    seki
        6
    seki  
       2020-04-26 02:22:15 +08:00
    你写出这个页面会有多少人来用呢
    你存了结果,但是图书馆入库了一批新书,你怎么维护呢

    如果你只是想改进一下搜索体验,这里的首要问题已经不是怎么爬取数据了。还不如你主动去找图书馆联系,帮助他们改进搜索速度,这样你就能访问到数据库,专注在改进搜索上了
    miekion
        7
    miekion  
    OP
       2020-04-26 02:37:13 +08:00 via iPhone
    @seki 目前是我在做一个有关校园生活的小程序,比如查成绩课表校内快递校园活动,还有讨论等等很多模块

    目前我从后台看日活是算比较高的了,主要是有同学反馈给我说图书馆检索的实在太慢,我也联系过图书馆,他们回应这个接口实际上是被外包出去的,所以比较难去联系了😂
    seki
        8
    seki  
       2020-04-26 03:40:26 +08:00
    我觉得不如找点学校内渠道看看能不能拿到数据,最终会更好的,当然我也理解估计会很困难,因为不是技术上的事情了……
    falcon05
        9
    falcon05  
       2020-04-26 07:26:27 +08:00 via iPhone
    你的想法很好,应该是最省事的做法,建议定期在后台更新一下缓存的结果,虽然还是会不同步…
    EricCartmann
        10
    EricCartmann  
       2020-04-26 07:57:47 +08:00 via iPhone
    正确的方法不是来这里问大家。因为爬虫没有”一劳永逸”的办法,做爬虫需要对着你的目标一点一点分析,看有没接口,看接口返回的什么类型的数据,看返回的数据有没有加密,看接口有没有 ip 访问限制,这些东西每个网站都不一样。你爬的是学校图书馆的数据,应该没有太多的数据保护加密措施,但可能没有分类接口,只有搜索接口,这就不太好吧所有数据爬下来了。
    至于你说的弄到数据后自己维护一套图书搜索系统,还可以根据关键字搜索,建议你看看 Elasticsearch,在校学生很容易陷入一个问题,就是不知道业界主流的解决方案,什么都想自己写一个,写出来效率,安全性又是一堆问题。
    Takuron
        11
    Takuron  
       2020-04-26 08:47:21 +08:00 via Android
    不建议按关键词来找,一般图书馆都有编号吧按照编号递增遍历。
    另外如果只是提供别人查询建议使用楼上的缓存方案,根据我们图书馆的大数据其实大部分人借的书都集中在一些热门书籍上,感觉有点 28 定律的分布,缓存应该能极大优化体验。
    最后,不喜欢 18cm 这种标题,先不说女拳我看着也不适,建议少用标题党。
    hafuhafu
        12
    hafuhafu  
       2020-04-26 08:58:32 +08:00
    我觉得你们学校服务器都这样了,你还去爬它...
    huayumo
        13
    huayumo  
       2020-04-26 09:11:53 +08:00
    有这功夫,不如把你们学校的程序改造一下,或者直接找管理员要份数据,大家都是干网络的,兴许能给你,
    Vegetable
        14
    Vegetable  
       2020-04-26 09:46:32 +08:00
    说实话,有这个功夫,不如找管理员问问...
    toma77
        15
    toma77  
       2020-04-26 09:49:06 +08:00
    为何让我减了 2CM ?
    rafa
        16
    rafa  
       2020-04-26 09:54:28 +08:00
    问管理员要一份数据,做一个公益性质的索引检索服务器,win win~
    ji39
        17
    ji39  
       2020-04-26 12:35:50 +08:00 via Android
    找个附近学校的爬
    loveyou1
        18
    loveyou1  
       2020-04-26 12:47:10 +08:00
    @miekion 今日校园基本该有的都有了
    onion606
        19
    onion606  
       2020-04-26 13:51:12 +08:00 via Android
    事实上直接拿到数据库权限会不会更好,如果学校同意的话,如果你的用户量够多…… 自己爬半天爬不到啥,把那仅剩的资源给搞崩溃了不是更亏……搞不好还要被骂一通收个处分……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6011 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 02:11 · PVG 10:11 · LAX 18:11 · JFK 21:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.