python 在qq消息中下载文件

如题所述

第1个回答  2022-04-13
主要使用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 !=' {undefined{el.name}}({undefined{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')]))