日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python qq群文件_python 获取qq群成员列表数据

發布時間:2024/3/13 python 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python qq群文件_python 获取qq群成员列表数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#!/usr/bin/python

# -*- coding: utf-8 -*-

import re

import time

import xlsxwriter

from selenium import webdriver

from bs4 import BeautifulSoup

import io

import sys

def qq_login(gid):

"""

通過selenium模擬登錄,獲取群成員信息

:param gid: 群號

:return: 頁面源碼

"""

driver = webdriver.Chrome()

driver.get('https://qun.qq.com/member.html#gid=%s' % gid)

driver.maximize_window()

time.sleep(3)

# 切換iframe授權登錄

driver.switch_to_frame('login_frame')

driver.find_element_by_class_name('img_out_focus').click()

# 拉動滑動條加載剩余數據

for i in range(1000):

js = "window.scrollTo(0,document.body.scrollHeight)"

driver.execute_script(js)

# 獲取頁面源碼并寫入緩存

res = driver.page_source

driver.close()

return res

def dispose(res):

"""

處理頁面源碼數據,提取群成員信息

:param res: 頁面源碼

:return: 處理后的list_a列表

"""

# 改變標準輸出的默認編碼

sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='gb18030')

soup = BeautifulSoup(res, 'lxml')

# 查找tr標簽下的class屬性包含‘mb’的節點樹

c = soup.find_all('tr', attrs={"class": re.compile('mb')})

list_a = []

for i in c:

# 處理一些特殊字符‘\n’,'\t',替換成‘,’

str_a = i.text.replace('\n', '').replace('\t', ',')

# 通過正則表達式,切割以‘,’分割的字符串組成列表

data = re.split(r',', str_a)

# 去除空字符""

data_list = [i for i in data if i != '']

# 獲取頭像地址并插入列表

img = "https:" + i.img.get('src')

# 將頭像地址插入列表中第3個位置的元素

data_list.insert(2, img)

# 刪除列表中的序號

del data_list[0]

# 由于前面刪除了空字符"",導致有些人的群昵稱為空也刪除,這里手動添加進去。

if len(data_list) < 9:

data_list.insert(2, '')

# 每一個成員信息為一個列表,添加到list_a作為元素

list_a.append(data_list)

return list_a

def write_execl(list_a):

"""

寫入execl表格

:param list_a: 數據列表

:return:

"""

if len(list_a) > 2:

# 創建execl

new_time = time.strftime("%Y-%m-%d %H_%M_%S", time.localtime())

workbook = xlsxwriter.Workbook('{}.xlsx'.format(new_time)) # 新建excel表

worksheet = workbook.add_worksheet('sheet1') # 新建sheet(sheet的名稱為"sheet1")

bold = workbook.add_format({

'bold': 1, # 字體加粗

'fg_color': 'green', # 單元格背景顏色

'align': 'center', # 對齊方式

'valign': 'vcenter', # 字體對齊方式

})

# 寫表頭

work_header = ['QQ昵稱', '頭像地址', '群昵稱', 'QQ號', '性別', 'Q齡', '入群時間', '等級(積分)', '最后發言']

worksheet.write_row('A1', work_header, bold)

# 遍歷多少條數據就寫入多少行數據到execl,表頭已經占了A1,所以從A2開始寫入,index從0開始遍歷(2+index)

for index in range(len(list_a)):

worksheet.write_row('A%s' % (2 + index), list_a[index])

# 最后關閉workbook,否則不會產生execl文件

workbook.close()

else:

print('請檢查群號是否有誤,沒有獲取到群成員信息,放棄寫入execl')

if __name__ == '__main__':

res = qq_login('填寫群號')

list_a = dispose(res)

write_execl(list_a)

總結

以上是生活随笔為你收集整理的python qq群文件_python 获取qq群成员列表数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。