电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python selenium 加載并保存QQ群成員,去除其群主、管理員信息的示例代碼

瀏覽:97日期:2022-07-24 10:19:39

一位伙計自己開了個游戲室,想在群里拉點人,就用所學知識幫幫忙,于是就有了這篇文章,今天小編特此通過實例代碼給大家介紹下Python selenium 加載并保存QQ群成員去除其群主、管理員信息的示例代碼

模擬登陸頁面

頁面分析

思路:

點擊登陸按鈕選擇要登陸的賬號

Python selenium 加載并保存QQ群成員,去除其群主、管理員信息的示例代碼

代碼實現

# Author:smart_num_1# Blog:https://blog.csdn.net/smart_num_1# WeChat:Be_a_lucky_dogfrom selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.support.ui import WebDriverWaitdef login(driver = None): already_dic = {} # 創(chuàng)建一個字典,保存電腦登陸的QQ login_button = WebDriverWait(driver = driver,timeout = 100).until(EC.presence_of_element_located((By.XPATH,’//p[@class='user-info']/a’))) login_button.click() # 點擊登錄,獲取電腦登陸的QQ already_login_number = WebDriverWait(driver = driver,timeout = 100).until(EC.presence_of_element_located((By.XPATH,’//div[@id='loginWin']/iframe’))) driver.get(url = already_login_number.get_attribute(’src’)) # 此步驟目的,是因為登錄框是一個子頁面,在上一級頁面中獲得到的這個子頁面 already_login_numbers = WebDriverWait(driver = driver,timeout = 100).until(EC.presence_of_all_elements_located((By.XPATH,’//span[contains(@class,'nick')]’))) # 獲取電腦登陸的QQ print(’在以下賬號中選擇所需賬號’) for already_login_number in already_login_numbers: already_dic[already_login_number.get_attribute(’innerText’)] = already_login_number print(already_login_number.get_attribute(’innerText’)) QQ_NeedToLogin = input(’需要登陸: ’) # 通過獲取鍵名,在 already_dic 獲得相應的鍵值 already_dic[QQ_NeedToLogin].click() # 模擬點擊要登陸的QQ,達到登陸的效果 time.sleep(1)if __name__ == ’__main__’:start_url = ’https://qun.qq.com/index.html#click’ # 群首頁,用來登陸賬號driver = webdriver.Chrome(executable_path = ’./chromedriver.exe’)# 因為selenium 需要用到瀏覽器、瀏覽器驅動,但是還要配置環(huán)境變量,很麻煩,如果這樣指定 webdriver 路徑的話,就可以省去那一步driver.get(url=start_url) login(driver=driver)

選擇所需加載群

頁面分析

打開群管理界面,會看到這樣的信息,我們的目的是爬取已加入群的成員信息

Python selenium 加載并保存QQ群成員,去除其群主、管理員信息的示例代碼

代碼實現

# Author:smart_num_1# Blog:https://blog.csdn.net/smart_num_1# WeChat:Be_a_lucky_dogdef get_group_number(driver = None): group_number_dic = {} # 同樣的,利用字典儲存信息 my_group_list = WebDriverWait(driver = driver,timeout = 100).until(EC.presence_of_all_elements_located((By.XPATH,’//ul[@class='my-group-list']/li’))) # 獲取每個已加入群的節(jié)點信息 print(’在以下群中選擇:’) i = 1 for my_group in my_group_list: try: group_number_dic[str(i)] = my_group print(’第 %s 個--- ’%str(i) + my_group.get_attribute(’title’) + ’ ’ + my_group.get_attribute(’data-id’)) i += 1 except: continue # 打印出獲得的群信息,獲取所有的目標群 group = input(’獲取群編號 : ’) # 通過鍵名獲取鍵值,得到要點擊的目標 group_number_dic[group].click() return driverif __name__ == ’__main__’:member_url_test = ’https://qun.qq.com/member.html’driver.get(url = member_url_test) driver = get_group_number(driver=driver)

保存所需信息

頁面分析

可以看到,是個動態(tài)加載的頁面,因為用的是selenium,所以就沒必要分析到底是通過請求那個url得到的信息,直接模擬滾動獲取就可以了

Python selenium 加載并保存QQ群成員,去除其群主、管理員信息的示例代碼

代碼實現

# Author:smart_num_1# Blog:https://blog.csdn.net/smart_num_1# WeChat:Be_a_lucky_dogdef get_group_member(driver = None): driver.refresh() # 刷新一下界面,防止上一步點擊過后,頁面不更新的情況 elem_end = WebDriverWait(driver = driver,timeout = 100).until(EC.presence_of_element_located((By.XPATH,’//td[@class='td-user-nick']/img’))) # 添加了等待,這個定位可以隨便的選擇,確保頁面加載完畢的 for i in range(10): time.sleep(0.5) driver.execute_script('var action=document.documentElement.scrollTop=10000') print(’加載中······’) # 這個滾動范圍可以任選,因為每次會加載21個信息,我看過我加的群,在10次過后的成員基本屬于潛水的人了,要不要的就無所謂了 group_members = driver.find_elements_by_xpath(’//tr[contains(@class,'mb')]’) for group_member in group_members: try: data = group_member.text.split(’n’)[2].split(’ ’)[0] # 這一步,得到一個列表,從第一位開始分別是成員、群昵稱、QQ號、性別、Q齡、入群時間、等級(積分)、最后發(fā)言,在這里我是只需要QQ號碼 #對于其他信息,根據自己需要,添加代碼即可 if data.isdigit() == True: with open(’./record.txt’,’a’,encoding = ’utf-8’) as record: record.write(data + ’@qq.com’) record.write(’n’) except: continue print(’Loaded’)

完整代碼

# Author:smart_num_1# Blog:https://blog.csdn.net/smart_num_1# WeChat:Be_a_lucky_dogfrom selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.chrome.options import Optionsimport timeimport randomimport osdef get_group_member(driver = None): driver.refresh() elem_end = WebDriverWait(driver = driver,timeout = 100).until(EC.presence_of_element_located((By.XPATH,’//td[@class='td-user-nick']/img’))) for i in range(10): time.sleep(0.5) driver.execute_script('var action=document.documentElement.scrollTop=10000') print(’加載中······’) group_members = driver.find_elements_by_xpath(’//tr[contains(@class,'mb')]’) for group_member in group_members: try: data = group_member.text.split(’n’)[2].split(’ ’)[0] if data.isdigit() == True: with open(’./record.txt’,’a’,encoding = ’utf-8’) as record: record.write(data + ’@qq.com’) record.write(’n’) except: continue print(’Loaded’)def get_group_number(driver = None): group_number_dic = {} my_group_list = WebDriverWait(driver = driver,timeout = 100).until(EC.presence_of_all_elements_located((By.XPATH,’//ul[@class='my-group-list']/li’))) print(’在以下群中選擇:’) i = 1 for my_group in my_group_list: try: group_number_dic[str(i)] = my_group print(’第 %s 個--- ’%str(i) + my_group.get_attribute(’title’) + ’ ’ + my_group.get_attribute(’data-id’)) i += 1 except: continue group = input(’獲取群編號 : ’) group_number_dic[group].click() return driverdef login(driver = None): already_dic = {} login_button = WebDriverWait(driver = driver,timeout = 100).until(EC.presence_of_element_located((By.XPATH,’//p[@class='user-info']/a’))) login_button.click() already_login_number = WebDriverWait(driver = driver,timeout = 100).until(EC.presence_of_element_located((By.XPATH,’//div[@id='loginWin']/iframe’))) driver.get(url = already_login_number.get_attribute(’src’)) already_login_numbers = WebDriverWait(driver = driver,timeout = 100).until(EC.presence_of_all_elements_located((By.XPATH,’//span[contains(@class,'nick')]’))) print(’在以下賬號中選擇所需賬號’) for already_login_number in already_login_numbers: already_dic[already_login_number.get_attribute(’innerText’)] = already_login_number print(already_login_number.get_attribute(’innerText’)) QQ_NeedToLogin = input(’需要登陸: ’) already_dic[QQ_NeedToLogin].click() time.sleep(1)def start(driver = None,url = None): print(’Please wait for loadingn’) driver.get(url = url) driver = get_group_number(driver=driver) print(’Please wait for loadingn’) get_group_member(driver=driver)if __name__ == ’__main__’: print(’Please wait for loading’) chrome_options=Options() chrome_options.add_argument(’--headless’) try: random.seed(time.time()) QQ_number = ’738334209’ start_url = ’https://qun.qq.com/index.html#click’ member_url = ’https://qun.qq.com/member.html#gid=%s’%QQ_number member_url_test = ’https://qun.qq.com/member.html’ driver = webdriver.Chrome(executable_path = ’./chromedriver.exe’,chrome_options=chrome_options) try: driver.get(url=start_url) login(driver=driver) while True: start(driver = driver,url = member_url_test) flag = input(’是否繼續(xù)爬取? yes or no : ’) if flag == ’no’: break os.system(’cls’) driver.quit() except: print(’Something wrong’) driver.quit() except: print(’Something wrong!!!!!!’) os.system(’pause’)

轉載請標明出處:https://blog.csdn.net/smart_num_1/article/details/106326488

總結

到此這篇關于Python selenium 加載并保存QQ群成員 去除其群主、管理員信息的示例代碼的文章就介紹到這了,更多相關Python selenium 加載并保存QQ群成員內容請搜索好吧啦網以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: qq Python
主站蜘蛛池模板: 净化车间装修_合肥厂房无尘室设计_合肥工厂洁净工程装修公司-安徽盛世和居装饰 | 电动卫生级调节阀,电动防爆球阀,电动软密封蝶阀,气动高压球阀,气动对夹蝶阀,气动V型调节球阀-上海川沪阀门有限公司 | 中式装修设计_全屋定制家具_实木仿古门窗花格厂家-喜迎门 | 金属清洗剂,防锈油,切削液,磨削液-青岛朗力防锈材料有限公司 | 有机肥设备生产制造厂家,BB掺混肥搅拌机、复合肥设备生产线,有机肥料全部加工设备多少钱,对辊挤压造粒机,有机肥造粒设备 -- 郑州程翔重工机械有限公司 | 精密交叉滚子轴承厂家,转盘轴承,YRT转台轴承-洛阳千协轴承 | PCB接线端子_栅板式端子_线路板连接器_端子排生产厂家-置恒电气 喷码机,激光喷码打码机,鸡蛋打码机,手持打码机,自动喷码机,一物一码防伪溯源-恒欣瑞达有限公司 假肢-假肢价格-假肢厂家-河南假肢-郑州市力康假肢矫形器有限公司 | 硫化罐_蒸汽硫化罐_大型硫化罐-山东鑫泰鑫智能装备有限公司 | 北京征地律师,征地拆迁律师,专业拆迁律师,北京拆迁律师,征地纠纷律师,征地诉讼律师,征地拆迁补偿,拆迁律师 - 北京凯诺律师事务所 | 爱佩恒温恒湿测试箱|高低温实验箱|高低温冲击试验箱|冷热冲击试验箱-您身边的模拟环境试验设备技术专家-合作热线:400-6727-800-广东爱佩试验设备有限公司 | 对辊式破碎机-对辊制砂机-双辊-双齿辊破碎机-巩义市裕顺机械制造有限公司 | 不锈钢复合板厂家_钛钢复合板批发_铜铝复合板供应-威海泓方金属复合材料股份有限公司 | 低粘度纤维素|混凝土灌浆料|有机硅憎水粉|聚羧酸减水剂-南京斯泰宝 | 蔬菜配送公司|蔬菜配送中心|食材配送|饭堂配送|食堂配送-首宏公司 | 全自动面膜机_面膜折叠机价格_面膜灌装机定制_高速折棉机厂家-深圳市益豪科技有限公司 | 药品/药物稳定性试验考察箱-埃里森仪器设备(上海)有限公司 | 直线模组_滚珠丝杆滑台_模组滑台厂家_万里疆科技 | 伟秀电气有限公司-10kv高低压开关柜-高低压配电柜-中置柜-充气柜-欧式箱变-高压真空断路器厂家 | 精密钢管,冷拔精密无缝钢管,精密钢管厂,精密钢管制造厂家,精密钢管生产厂家,山东精密钢管厂家 | 24位ADC|8位MCU-芯易德科技有限公司 | 防勒索软件_数据防泄密_Trellix(原McAfee)核心代理商_Trellix(原Fireeye)售后-广州文智信息科技有限公司 | 根系分析仪,大米外观品质检测仪,考种仪,藻类鉴定计数仪,叶面积仪,菌落计数仪,抑菌圈测量仪,抗生素效价测定仪,植物表型仪,冠层分析仪-杭州万深检测仪器网 | 水压力传感器_数字压力传感器|佛山一众传感仪器有限公司|首页 | 聚合氯化铝厂家-聚合氯化铝铁价格-河南洁康环保科技 | 体视显微镜_荧光生物显微镜_显微镜报价-微仪光电生命科学显微镜有限公司 | 999范文网_优质范文下载写作帮手 | 全自动实验室洗瓶机,移液管|培养皿|进样瓶清洗机,清洗剂-广州摩特伟希尔机械设备有限责任公司 | 上海佳武自动化科技有限公司 | 刹车盘机床-刹车盘生产线-龙口亨嘉智能装备 | 真空吸污车_高压清洗车厂家-程力专用汽车股份有限公司官网 | 球形钽粉_球形钨粉_纳米粉末_难熔金属粉末-广东银纳官网 | 学校用栓剂模,玻璃瓶轧盖钳,小型安瓿熔封机,实验室安瓿熔封机-长沙中亚制药设备有限公司 | 数显恒温培养摇床-卧式/台式恒温培养摇床|朗越仪器 | 衬塑管道_衬四氟管道厂家-淄博恒固化工设备有限公司 | 杭州画室_十大画室_白墙画室_杭州美术培训_国美附中培训_附中考前培训_升学率高的画室_美术中考集训美术高考集训基地 | 桁架楼承板-钢筋桁架楼承板-江苏众力达钢筋楼承板厂 | 爱佩恒温恒湿测试箱|高低温实验箱|高低温冲击试验箱|冷热冲击试验箱-您身边的模拟环境试验设备技术专家-合作热线:400-6727-800-广东爱佩试验设备有限公司 | 上海租车公司_上海包车_奔驰租赁_上海商务租车_上海谐焕租车 | 地埋式垃圾站厂家【佳星环保】小区压缩垃圾中转站转运站 | 等离子空气净化器_医用空气消毒机_空气净化消毒机_中央家用新风系统厂家_利安达官网 | 天一线缆邯郸有限公司_煤矿用电缆厂家_矿用光缆厂家_矿用控制电缆_矿用通信电缆-天一线缆邯郸有限公司 |