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

2019-11-08 09:19:56 +08:00
 ywanght

请教一个问题:在 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))
2622 次点击
所在节点    Python
2 条回复
qingyuan0o0
2019-11-08 10:49:35 +08:00
itchat 居然还没坏啊
ywanght
2019-11-11 15:36:20 +08:00
已解决,关闭。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/617453

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX