V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
ywanght
V2EX  ›  Python

itchat 抓取群成员数据的诡异问题

  •  
  •   ywanght · 2019-11-08 09:19:56 +08:00 · 2781 次点击
    这是一个创建于 1843 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请教一个问题:在 python 中用 itchat 抓取群成员信息时,有一个群的信息有时抓得到有时抓不到,其他群都正常。

    这是什么原因?

    代码如下(主体代码是基于别人的做了小修改):

    #!/usr/bin/env python
    # coding: utf-8
    
    # In[1]:
    
    
    import itchat
    from itchat.content import TEXT
    from itchat.content import *
    import sys
    import os
    import socket
    import time
    import pandas as pd
    import re
    import datetime
    
    
    # In[2]:
    
    
    itchat.auto_login(hotReload=True)
    friends = itchat.get_friends(update=True)[0:]
    
    
    # In[3]:
    
    
    if socket.gethostname()=='xxxx':
        root=r'C:\Users\xxxx'
    else:
        root=r'E:\OneDrive - xxx'
    
    
    # In[4]:
    
    
    roomslist = []
    
    def getroom_message(n):
        #获取群的 username,对群成员进行分析需要用到
        itchat.dump_login_status() # 显示所有的群聊信息,默认是返回保存到通讯录中的群聊
        RoomList =  itchat.search_chatrooms(name=n)
        if RoomList is None:
            pass
            #print("{0} group is not found!".format(name))
        else:
           # print('取得:',RoomList[0]['UserName'])
            return RoomList[0]['UserName']
    
    def getchatrooms():
        #获取群聊列表
        roomslist = itchat.get_chatrooms()
        #print('列表',roomslist)
        return roomslist
    
    
    # In[5]:
    
    
    for i in getchatrooms():
        roomslist.append(i['NickName'])
    
    
    # In[6]:
    
    
    data=[]
    for n in roomslist:
        ChatRoom = itchat.update_chatroom(getroom_message(n), detailedMember=True)
        for i in ChatRoom['MemberList']:
            data.append({'群名称':ChatRoom['NickName'],
                         '省份':i['Province'],
                         '用户名':i['NickName'],
                         'ID':i['UserName'],
                         '性别':i['Sex']})
    
    
    # In[7]:
    
    
    df=pd.DataFrame(data)
    df.to_csv((root+'\jupyter\群数据{}-{}-{}.csv').format(time.localtime().tm_year,time.localtime().tm_mon,time.localtime().tm_mday))
    
    2 条回复    2019-11-11 15:36:20 +08:00
    qingyuan0o0
        1
    qingyuan0o0  
       2019-11-08 10:49:35 +08:00
    itchat 居然还没坏啊
    ywanght
        2
    ywanght  
    OP
       2019-11-11 15:36:20 +08:00
    已解决,关闭。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1566 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 16:50 · PVG 00:50 · LAX 08:50 · JFK 11:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.