日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

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

瀏覽:190日期: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 = {} # 創建一個字典,保存電腦登陸的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 需要用到瀏覽器、瀏覽器驅動,但是還要配置環境變量,很麻煩,如果這樣指定 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’))) # 獲取每個已加入群的節點信息 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)

保存所需信息

頁面分析

可以看到,是個動態加載的頁面,因為用的是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齡、入群時間、等級(積分)、最后發言,在這里我是只需要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(’是否繼續爬取? 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群成員內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: qq Python
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩大片在线| 麻豆国产欧美日韩综合精品二区| 欧美xxxx中国| 精品国产精品国产偷麻豆| 亚洲日本免费电影| 国产亚洲电影| 日韩毛片视频| 国产精品日本| 最近高清中文在线字幕在线观看1| 色88888久久久久久影院| 国产真实久久| 成人高清一区| 亚洲黄色免费看| 成人在线黄色| 欧美日韩在线二区| 蜜臀精品一区二区三区在线观看| 欧美日韩精品一本二本三本| 久久久久99| 日韩国产欧美| 亚洲作爱视频| 91久久国产| 人人爱人人干婷婷丁香亚洲| 亚洲v在线看| 国产欧美日韩一区二区三区四区| 国产一区二区三区四区| 国产精品亚洲综合在线观看| 在线精品福利| 免费人成网站在线观看欧美高清| 精品国产网站| 日本а中文在线天堂| 欧美三区不卡| 日韩中文字幕在线一区| 美女网站久久| 日本不卡一区二区三区| 日本成人中文字幕| 国产精品地址| 国产不卡一区| 久久高清免费| 亚洲一区二区三区高清| 婷婷综合福利| 国产拍在线视频| 在线视频免费在线观看一区二区| 午夜天堂精品久久久久| 亚洲欧美久久久| 国产一区二区精品福利地址| 国产精品18| 欧美日韩国产综合网| 91欧美极品| 日韩理论片av| 日韩欧美中文字幕电影| 久久久久亚洲精品中文字幕| 99香蕉国产精品偷在线观看| 日本少妇精品亚洲第一区| 日韩欧美午夜| 中文字幕免费一区二区| 精品国产一区二区三区2021| 国产一区二区三区天码| 精精国产xxxx视频在线播放| 国产不卡精品| 精品免费视频| 91精品一区二区三区综合在线爱| 免费视频一区三区| 亚洲一区不卡| 亚洲欧美在线综合| 日本在线一区二区三区| 国产欧美午夜| 欧美另类中文字幕| 国产精品一区亚洲| 日韩精品影视| 在线免费观看亚洲| 日韩欧乱色一区二区三区在线| 久久狠狠亚洲综合| 先锋影音国产一区| 免费在线看一区| 日韩高清在线观看一区二区| 国产精品三p一区二区| 久久高清免费| 麻豆亚洲精品| 中文字幕乱码亚洲无线精品一区| 深夜福利一区| 欧美天堂亚洲电影院在线观看| 精品91福利视频| 精品国产成人| 国产成人久久精品麻豆二区| 日本成人在线视频网站| 亚洲不卡视频| 中文字幕中文字幕精品| 日韩精品国产欧美| 国产欧美在线| 狠狠色狠狠色综合日日tαg| 欧美专区18| 国产精品成人a在线观看| 色婷婷亚洲mv天堂mv在影片| 精品国产91| 一区二区视频欧美| 久久电影tv| 视频一区国产视频| 免费人成在线不卡| 日韩精品视频中文字幕| 国产日韩欧美在线播放不卡| 美女精品久久| 韩国精品主播一区二区在线观看| 在线视频观看日韩| 日本中文字幕不卡| 欧美日一区二区三区在线观看国产免| 欧美日韩99| 热三久草你在线| 99在线精品免费视频九九视| 亚洲ww精品| 日韩大片在线| 首页国产精品| 成人av动漫在线观看| 国产精品xxx在线观看| 国产麻豆一区二区三区| 蜜桃久久久久久| 欧洲在线一区| 久久精品资源| 欧美/亚洲一区| 精品国产99| 免费看黄色91| 日本高清不卡一区二区三区视频| 国产欧美午夜| 国产日韩高清一区二区三区在线 | 国产精品美女午夜爽爽| 精品免费在线| 国产日韩亚洲欧美精品| 91精品在线观看国产| 国产精品成人一区二区网站软件| 中文一区在线| 欧美激情福利| 香蕉精品久久| 麻豆国产91在线播放| 亚洲丝袜啪啪| 国产精品毛片| 首页欧美精品中文字幕| 尤物精品在线| 国产亚洲高清视频| 亚洲午夜久久| 亚洲狼人精品一区二区三区| 红桃视频亚洲| 蜜桃视频一区二区| 午夜性色一区二区三区免费视频| 丝袜美腿亚洲色图| 日韩精品一级| 国产精品一区亚洲| 久久久久久美女精品| 午夜久久久久| 最近国产精品视频| 国产二区精品| 老牛国内精品亚洲成av人片| 欧美精品一线| 亚洲精选av| 亚洲精品国产偷自在线观看| 欧美日韩精品免费观看视频完整 | 日韩美女国产精品| 国产成人精选| 欧美一区二区三区免费看| 亚洲欧美一级| 久久亚洲风情| 人人精品久久| 国产一区二区三区不卡av | 免费观看久久久4p| 国产精品亚洲成在人线| 97精品97| 日韩中文字幕麻豆| 你懂的亚洲视频| 日韩免费在线| 一区二区国产在线观看| 欧美精品aa| 久久亚洲成人| 日韩毛片一区| 四虎4545www国产精品 | 久久伊人亚洲| 91久久久精品国产| 国产剧情一区二区在线观看| 日韩精品久久久久久久电影99爱| 三级欧美在线一区| 国产成人免费视频网站视频社区| 性色一区二区| 久久精品九色| 日韩专区欧美专区| 一区二区三区四区日本视频| 国产精品毛片在线看| 免费精品一区| 夜夜嗨一区二区| 精品国产鲁一鲁****| 蜜桃视频一区二区| 欧美三区四区| 欧美日韩亚洲一区在线观看| 极品日韩av| 老司机精品视频在线播放| 亚洲综合国产| 国产va在线视频| 欧美一级久久| 免费观看不卡av| 久久精品三级| 视频国产精品| 欧美不卡高清| 久久精品毛片| 日本午夜免费一区二区|