yanyuechuixue
V2EX  ›  问与答

兄弟们,我想咨询一个爬虫的问题,该怎么遍历网站

  •  
  •   yanyuechuixue · Apr 11, 2023 · 1134 views
    This topic created in 1165 days ago, the information mentioned may be changed or developed.

    首先声明爬取的数据并不是为了盈利,也不会做商业用途,只是为了科研用途,在科研结束之后会销毁。数据在此期间将全程保存在我的电脑上,我的电脑在此期间一直位于中国大陆。

    我想去爬取一个网站的用户的 [用户名,ip 属地,粉丝,关注] 。不需要任何其他的东西。其中为了保护隐私(以防止数据泄露),所有用户的用户名和 IP 属地都将用对应的哈希值代替(科研不需要具体的用户名和 IP 属地的具体名字)。(哈希发生碰撞的概率应该比较低吧。。。)

    现在问题来了,我该怎么遍历整个网站呢? 比如我访问第一个用户的页面,记录下用户名和 IP ,然后访问这个用户的关注 /粉丝页面,记录下他关注的用户 /粉丝。 下一步我预计会访问这个用户的第一个粉丝,然后用同样的方法访问该粉丝的关注和粉丝。。。

    • 第一个问题是:这样该如何保证我能爬完所有用户并尽可能没有重复访问呢?

    • 第二个问题不解决也可以:我该用什么样的数据结构来记录这些数据呢?每个用户一个字典似乎太奢侈了?

    我不是专业的写代码的……所以大家别笑话我哈…… 当然如果笑话我能让大家获得开心的话,也可以笑话我哈!

    dreasky
        1
    dreasky  
       Apr 11, 2023
    爬虫需要两个队列<待爬取 url 队列> A 和<已经爬取的 url 集合>B
    爬虫入口提取可能跳转的 url 加入 A 队尾 ,爬取线程从 A 队头取 url 和 B 比对是否已经爬取过,爬取成功后的 url 写入 B

    B 可以用 Redis
    A 中 url 是根据爬取逻辑提取 非 SPA 页面可以粗暴提取页面内所有 a 标签 href
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2598 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 64ms · UTC 04:40 · PVG 12:40 · LAX 21:40 · JFK 00:40
    ♥ Do have faith in what you're doing.