兄弟们,我想咨询一个爬虫的问题,该怎么遍历网站 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yanyuechuixue
V2EX    问与答

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

  •  
  •   yanyuechuixue 2023-04-11 16:26:45 +08:00 887 次点击
    这是一个创建于 965 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

    B 可以用 Redis
    A 中 url 是根据爬取逻辑提取 非 SPA 页面可以粗暴提取页面内所有 a 标签 href
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     968 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 18ms UTC 19:17 PVG 03:17 LAX 11:17 JFK 14:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86