python 下载qq群文件_python获取所有qq好友、全部群所有成员部分信息,并保存列表至电子表格文件...
序
發現上半年壓了一堆實用代碼,想了一下,還是開源吧。這個就先發布了。
警告
請合理使用此代碼,嚴禁用于廣告、信息售賣等反人類用途
使用時請注意不要超負荷訪問騰訊服務器
(歡迎各位改良并Pull Request)
主要使用selenium+chrome,加了Tkinter的簡單GUI,代碼比較簡單,就不細說了,請自行品味:
獲取qq好友列表
這個是從QQ充值獲取的,可得"原始數據",“分組”,“顯示名”,“QQ號”:
import selenium
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import tkinter as tk
from tkinter.filedialog import asksaveasfilename
from bs4 import BeautifulSoup
import lxml
import openpyxl
from openpyxl import Workbook
def callback():
driver.switch_to_frame('webpay-iframe')
iframe =driver.find_element_by_xpath('//*[@id="midas-webpay-main-1450000186"]/div[2]/div[1]/iframe')
driver.switch_to_frame(iframe)
html=driver.page_source
soup=BeautifulSoup(html,"lxml")
a=soup.find_all(attrs={'class':'icon-friend-s'})
wb = Workbook()
ws = wb.active
ws.append(["原始數據","分組","顯示名","QQ號"])
for i in a:
if i.next_sibling !=' {{el.name}}({{el.qq}})':
#re,qq匹配:
#pattern = re.compile(r'[1-9][0-9]{4,}')
#re,括號匹配:
#pattern = re.compile(r'(?<=\().*?(?=\))')
#m = pattern.search(i.next_sibling)
k=0
for x in i.next_sibling:
if x == '(':
f=k
if x == ')':
l=k
k=k+1
ws.append([i.next_sibling,i.next_sibling.parent.parent.parent.parent.find(attrs={'class':'icon-more-friend'}).next_sibling,i.next_sibling[:f],i.next_sibling[f+1:l]])
print([i.next_sibling,i.next_sibling.parent.parent.parent.parent.find(attrs={'class':'icon-more-friend'}).next_sibling,i.next_sibling[:f],i.next_sibling[f+1:l]])
wb.save(asksaveasfilename(defaultextension ='.xlsx',filetypes = [('Excel 工作簿', '*.xlsx')]))
#瀏覽器位置
driver=webdriver.Chrome()
browser =driver
browser.get("https://pay.qq.com/index.shtml")
root = tk.Tk()
# 設置窗口標題
root.title('從QQ充值獲取好友列表——峽州仙士制作')
# 設置窗口大小
root.geometry('400x200')
# 進入消息循環(檢測到事件,就刷新組件)
button = tk.Button(root, text='已登陸并打開充值界面,且點開列表', command=callback)
button.pack()
root.mainloop()
獲取qq好友列表
這個是從QQ群管理獲取的,用了pandas庫,導出表格超快,可得成員、群昵稱、QQ號、性別、Q齡、入群時間、等級(積分)、最后發言等信息:
import selenium
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import tkinter as tk
from tkinter.filedialog import askdirectory
from lxml import etree
import lxml
from bs4 import BeautifulSoup
import pandas as pd
import time
path=askdirectory()
#去字符串兩端'\n'、'\t'
def delNT(s):
while s.startswith('\n') or s.startswith('\t'):
s=s[1:]
while s.endswith('\t') or s.endswith('\n'):
s=s[:-1]
return s
def callback():
a=driver.find_elements_by_class_name('icon-def-gicon')
Num= len(a)
time_start=time.time()
for i in range(0,Num):
#點擊進入具體群
a=driver.find_elements_by_class_name('icon-def-gicon')
#time.sleep(0.5)
a[i].click()
time.sleep(1)
html=driver.page_source
soup=BeautifulSoup(html,"lxml")
groupTit=delNT(soup.find(attrs={'id':'groupTit'}).text)
groupMemberNum=delNT(soup.find(attrs={'id':'groupMemberNum'}).text)
while len(soup.find_all(attrs={'class':'td-no'}))
driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")
time.sleep(0.1)
html=driver.page_source
soup=BeautifulSoup(html,"lxml")
res_elements = etree.HTML(html)
table = res_elements.xpath('//*[@id="groupMember"]')
table = etree.tostring(table[0], encoding='utf-8').decode()
df = pd.read_html(table, encoding='utf-8', header=0)[0]
try:
print(str(int((time.time()-time_start)/60))+':'+str(int((time.time()-time_start)%60)),'第'+str(i+1)+'群,'+str(int((i+1) / Num * 100))+'% '+groupTit+' 此表完成')
writer = pd.ExcelWriter(path+'/'+groupTit+'.xlsx')
df.to_excel(writer,'Sheet1')
writer.save()
except:
k=0
for v in groupTit:
if v == '(':
f=k
if v == ')':
l=k
k=k+1
writer = pd.ExcelWriter(path+'/'+groupTit[f+1:l]+'.xlsx')
df.to_excel(writer,'Sheet1')
writer.save()
driver.find_element_by_id('changeGroup').click()
time.sleep(1)
driver=webdriver.Chrome()
browser =driver
browser.get("https://qun.qq.com/member.html")
root = tk.Tk()
# 設置窗口標題
root.title('從QQ群管理獲取群成員列表——峽州仙士制作')
# 設置窗口大小
root.geometry('400x200')
# 進入消息循環(檢測到事件,就刷新組件)
button = tk.Button(root, text='已登陸并打開界面', command=callback)
button.pack()
root.mainloop()
本文作者: 峽州仙士
版權聲明: 本網站(峽州仙士之頁)所有文章除特別聲明外,均采用 BY-NC-SA 許可協議。轉載請注明出處!
總結
以上是生活随笔為你收集整理的python 下载qq群文件_python获取所有qq好友、全部群所有成员部分信息,并保存列表至电子表格文件...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML(一、语法规范,二、结构标签,三
- 下一篇: 金海佳学C++primer 练习9.18