国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python爬蟲使用selenium爬取qq群的成員信息(全自動實現(xiàn)自動登陸)(1)

這篇具有很好參考價值的文章主要介紹了Python爬蟲使用selenium爬取qq群的成員信息(全自動實現(xiàn)自動登陸)(1)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

browser.find_element_by_xpath(‘.//ul[@id=“headerNav”]/li[4]’).click()

8.點擊群管理之后,進(jìn)入群管理界面,我們需要的是成員管理

Python爬蟲使用selenium爬取qq群的成員信息(全自動實現(xiàn)自動登陸)(1),2024年程序員學(xué)習(xí),python,爬蟲,selenium

點擊之后,我們找到成員管理標(biāo)簽并點擊

WebDriverWait(browser, 1000).until(

EC.presence_of_all_elements_located(

(By.CLASS_NAME, ‘color-tit’)

)

)

browser.find_element_by_class_name(‘color-tit’).click()

9.點擊成員管理之后會重新新建一個窗口,這個時候就會出現(xiàn)句柄,我們需要將當(dāng)然窗口的句柄切換到新打開的這個界面,不然的話,是獲取不到新打開界面的信息的,注釋已經(jīng)寫了

Python爬蟲使用selenium爬取qq群的成員信息(全自動實現(xiàn)自動登陸)(1),2024年程序員學(xué)習(xí),python,爬蟲,selenium

打印全部窗口句柄

print(browser.window_handles)

打印當(dāng)前窗口句柄

print(browser.current_window_handle)

注意這里點擊成員管理之后會自動跳轉(zhuǎn)到一個新窗口打開這個頁面

所以我們需要將窗口句柄切換到這個新窗口

browser.switch_to.window(browser.window_handles[1])

解釋一下browser.switch_to.window是獲取當(dāng)前一共有幾個窗口

這里是2個

browser.switch_to.window這個是指定當(dāng)前游標(biāo)切換到哪個窗口

其實也可以這么寫

all_window = browser.switch_to.window返回的是一個列表

browser.switch_to.window(all_window[1])

效果是一樣的

10.我們需要的是我加入的群信息

Python爬蟲使用selenium爬取qq群的成員信息(全自動實現(xiàn)自動登陸)(1),2024年程序員學(xué)習(xí),python,爬蟲,selenium

切換句柄之后,我們顯示等待窗口出來

WebDriverWait(browser, 1000).until(

EC.presence_of_all_elements_located(

(By.CLASS_NAME, ‘my-all-group’)

)

)

篩選出我加入的群標(biāo)簽

lis = browser.find_elements_by_xpath(‘.//div[@class=“my-all-group”]/ul[2]/li’)

11.遍歷列表,取出信息

遍歷

num= 0

while True:

if num == len(lis):

break

try:

按順序選擇群并獲取信息

先點擊該群獲取成員信息

lis[num].click()

顯示等待信息加載完成

WebDriverWait(browser, 1000).until(

EC.presence_of_all_elements_located(

(By.CLASS_NAME, ‘list’)

)

)

獲取該群當(dāng)前有多少人,后面翻頁需要

groupMemberNum = eval(browser.find_element_by_id(‘groupMemberNum’).text)

每一次翻頁都會刷新21條信息,所以寫個循環(huán)

這里加1是因為假如一個群有36人,那么count=1,如果循環(huán)的話就不會翻頁了

也就是只能抓到一頁的數(shù)據(jù),大家可以自己想想其中的流程就知道了

count = groupMemberNum // 21 + 1

這里我只爬取每個群的一部分,如果想爬取全部成員信息

請注釋下面的if語句

if count > 2:

count = 1

每次循環(huán)都進(jìn)行翻頁

while count:

count -= 1

browser.execute_script(‘document.documentElement.scrollTop=100000’)

time.sleep(2)

time.sleep(2)

開始獲取成員信息

trs = browser.find_elements_by_class_name(‘mb’)

if trs:

遍歷

for tr in trs:

tds = tr.find_elements_by_tag_name(‘td’)[2:]

if len(tds) == 8:

qq網(wǎng)名

qq_name = tds[0].text

群名稱

group_name = tds[1].text

qq號

qq_number = tds[2].text

性別

gender = tds[3].text

qq年齡

qq_year = tds[4].text

入群時間

join_time = tds[5].text

等級(積分)

level = None

最后發(fā)言時間

end_time = tds[6].text

聲明一個字典存儲數(shù)據(jù)

data_dict = {}

data_dict[‘qq_name’] = qq_name

data_dict[‘group_name’] = group_name

data_dict[‘qq_number’] = qq_number

data_dict[‘gender’] = gender

data_dict[‘qq_year’] = qq_year

data_dict[‘join_time’] = join_time

data_dict[‘level’] = level

data_dict[‘end_time’] = end_time

print(data_dict)

elif len(tds) == 9:

qq網(wǎng)名

qq_name = tds[0].text

群名稱

group_name = tds[1].text

qq號

qq_number = tds[2].text

性別

gender = tds[3].text

qq年齡

qq_year = tds[4].text

入群時間

join_time = tds[5].text

等級(積分)

level = tds[6].text

最后發(fā)言時間

end_time = tds[7].text

聲明一個字典存儲數(shù)據(jù)

data_dict = {}

data_dict[‘qq_name’] = qq_name

data_dict[‘group_name’] = group_name

data_dict[‘qq_number’] = qq_number

data_dict[‘gender’] = gender

data_dict[‘qq_year’] = qq_year

data_dict[‘join_time’] = join_time

data_dict[‘level’] = level

data_dict[‘end_time’] = end_time

data_list.append(data_dict)

print(data_dict)

browser.find_element_by_id(‘changeGroup’).click()

time.sleep(3)

WebDriverWait(browser, 1000).until(

EC.presence_of_all_elements_located(

(By.CLASS_NAME, ‘ui-dialog’)

)

)

lis = browser.find_elements_by_xpath(‘.//div[@class=“my-all-group”]/ul[2]/li’)

num += 1

except Exception as e:

lis = browser.find_elements_by_xpath(‘.//div[@class=“my-all-group”]/ul[2]/li’)

num += 1

continue

完整代碼附上

導(dǎo)入需要的包

爬取qq群的成員信息

from selenium import webdriver

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.common.by import By

import time

import json

import csv

開始登陸

def login_spider():

url = ‘https://qun.qq.com/’

構(gòu)建谷歌驅(qū)動器

browser = webdriver.Chrome()

請求url

browser.get(url)

模擬登陸,首先找到登陸的id,并點擊

browser.find_element_by_css_selector(‘#headerInfo p a’).click()

點擊之后會彈出一個登陸框,這時候我們用顯示等待來等待這個登陸框加載出來

WebDriverWait(browser, 1000).until(

EC.presence_of_all_elements_located(

(By.CSS_SELECTOR, ‘#loginWin iframe’)

)

)

print(‘登陸框已加載’)

登陸框加載之后,我們發(fā)現(xiàn)整個登陸框其實就是另一個網(wǎng)網(wǎng)頁

如果在原網(wǎng)頁操作這個登陸框的話,是不能操作的

所以我們只需要提取iframe標(biāo)簽的src屬性,然后再去訪問這個url即可實現(xiàn)

自動登陸

找到iframe標(biāo)簽并獲取是如此熟悉

iframe_url = browser.find_element_by_css_selector(‘#loginWin iframe’).get_attribute(‘src’)

再訪問這個url

browser.get(iframe_url)

找到快捷登陸的頭像并點擊

首先用顯示等待這個頭像已經(jīng)加載完成

WebDriverWait(browser, 1000).until(

EC.presence_of_all_elements_located(

(By.ID, ‘qlogin_list’)

)

)

browser.find_element_by_css_selector(‘#qlogin_list a’).click()

print(‘登陸成功’)

return browser

切換句柄操作

def switch_spider(browser):

登陸成功之后,我們就找到群管理的標(biāo)簽并點擊,首先等待這個元素加載完成

WebDriverWait(browser, 1000).until(

EC.presence_of_all_elements_located(

(By.XPATH, ‘.//ul[@id=“headerNav”]/li[4]’)

)

)

browser.find_element_by_xpath(‘.//ul[@id=“headerNav”]/li[4]’).click()

點擊之后,我們找到成員管理標(biāo)簽并點擊

WebDriverWait(browser, 1000).until(

EC.presence_of_all_elements_located(

(By.CLASS_NAME, ‘color-tit’)

)

)

browser.find_element_by_class_name(‘color-tit’).click()

打印全部窗口句柄

print(browser.window_handles)

打印當(dāng)前窗口句柄

print(browser.current_window_handle)

注意這里點擊成員管理之后會自動跳轉(zhuǎn)到一個新窗口打開這個頁面

所以我們需要將窗口句柄切換到這個新窗口

browser.switch_to.window(browser.window_handles[1])

解釋一下browser.switch_to.window是獲取當(dāng)前一共有幾個窗口

這里是2個

browser.switch_to.window這個是指定當(dāng)前游標(biāo)切換到哪個窗口

其實也可以這么寫

all_window = browser.switch_to.window返回的是一個列表

browser.switch_to.window(all_window[1])

效果是一樣的

return browser

開始采集數(shù)據(jù)

def start_spider(browser):

聲明一個列表存儲字典

data_list = []

切換句柄之后,我們顯示等待窗口出來

WebDriverWait(browser, 1000).until(

EC.presence_of_all_elements_located(

(By.CLASS_NAME, ‘my-all-group’)

)

)

篩選出我加入的群標(biāo)簽

lis = browser.find_elements_by_xpath(‘.//div[@class=“my-all-group”]/ul[2]/li’)

遍歷

num = 0

while True:

try:

按順序選擇群并獲取信息

先點擊該群獲取成員信息

lis[num].click()

顯示等待信息加載完成

WebDriverWait(browser, 1000).until(

EC.presence_of_all_elements_located(

(By.CLASS_NAME, ‘list’)

)

)

獲取該群當(dāng)前有多少人,后面翻頁需要

groupMemberNum = eval(browser.find_element_by_id(‘groupMemberNum’).text)

每一次翻頁都會刷新21條信息,所以寫個循環(huán)

這里加1是因為假如一個群有36人,那么count=1,如果循環(huán)的話就不會翻頁了

也就是只能抓到一頁的數(shù)據(jù),大家可以自己想想其中的流程就知道了

count = groupMemberNum // 21 + 1

自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。

深知大多數(shù)Python工程師,想要提升技能,往往是自己摸索成長或者是報班學(xué)習(xí),但對于培訓(xùn)機構(gòu)動則幾千的學(xué)費,著實壓力不小。自己不成體系的自學(xué)效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!

因此收集整理了一份《2024年P(guān)ython開發(fā)全套學(xué)習(xí)資料》,初衷也很簡單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時減輕大家的負(fù)擔(dān)。
Python爬蟲使用selenium爬取qq群的成員信息(全自動實現(xiàn)自動登陸)(1),2024年程序員學(xué)習(xí),python,爬蟲,selenium
Python爬蟲使用selenium爬取qq群的成員信息(全自動實現(xiàn)自動登陸)(1),2024年程序員學(xué)習(xí),python,爬蟲,selenium
Python爬蟲使用selenium爬取qq群的成員信息(全自動實現(xiàn)自動登陸)(1),2024年程序員學(xué)習(xí),python,爬蟲,selenium
Python爬蟲使用selenium爬取qq群的成員信息(全自動實現(xiàn)自動登陸)(1),2024年程序員學(xué)習(xí),python,爬蟲,selenium
Python爬蟲使用selenium爬取qq群的成員信息(全自動實現(xiàn)自動登陸)(1),2024年程序員學(xué)習(xí),python,爬蟲,selenium
Python爬蟲使用selenium爬取qq群的成員信息(全自動實現(xiàn)自動登陸)(1),2024年程序員學(xué)習(xí),python,爬蟲,selenium

既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗的小伙伴深入學(xué)習(xí)提升的進(jìn)階課程,基本涵蓋了95%以上Python開發(fā)知識點,真正體系化!

由于文件比較大,這里只是將部分目錄大綱截圖出來,每個節(jié)點里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實戰(zhàn)項目、講解視頻,并且后續(xù)會持續(xù)更新

如果你覺得這些內(nèi)容對你有幫助,可以添加V獲?。簐ip1024c (備注Python)
Python爬蟲使用selenium爬取qq群的成員信息(全自動實現(xiàn)自動登陸)(1),2024年程序員學(xué)習(xí),python,爬蟲,selenium

(1)Python所有方向的學(xué)習(xí)路線(新版)

這是我花了幾天的時間去把Python所有方向的技術(shù)點做的整理,形成各個領(lǐng)域的知識點匯總,它的用處就在于,你可以按照上面的知識點去找對應(yīng)的學(xué)習(xí)資源,保證自己學(xué)得較為全面。

最近我才對這些路線做了一下新的更新,知識體系更全面了。

Python爬蟲使用selenium爬取qq群的成員信息(全自動實現(xiàn)自動登陸)(1),2024年程序員學(xué)習(xí),python,爬蟲,selenium

(2)Python學(xué)習(xí)視頻

包含了Python入門、爬蟲、數(shù)據(jù)分析和web開發(fā)的學(xué)習(xí)視頻,總共100多個,雖然沒有那么全面,但是對于入門來說是沒問題的,學(xué)完這些之后,你可以按照我上面的學(xué)習(xí)路線去網(wǎng)上找其他的知識資源進(jìn)行進(jìn)階。

Python爬蟲使用selenium爬取qq群的成員信息(全自動實現(xiàn)自動登陸)(1),2024年程序員學(xué)習(xí),python,爬蟲,selenium

(3)100多個練手項目

我們在看視頻學(xué)習(xí)的時候,不能光動眼動腦不動手,比較科學(xué)的學(xué)習(xí)方法是在理解之后運用它們,這時候練手項目就很適合了,只是里面的項目比較多,水平也是參差不齊,大家可以挑自己能做的項目去練練。

Python爬蟲使用selenium爬取qq群的成員信息(全自動實現(xiàn)自動登陸)(1),2024年程序員學(xué)習(xí),python,爬蟲,selenium文章來源地址http://www.zghlxwxcb.cn/news/detail-860660.html

向的技術(shù)點做的整理,形成各個領(lǐng)域的知識點匯總,它的用處就在于,你可以按照上面的知識點去找對應(yīng)的學(xué)習(xí)資源,保證自己學(xué)得較為全面。

最近我才對這些路線做了一下新的更新,知識體系更全面了。

Python爬蟲使用selenium爬取qq群的成員信息(全自動實現(xiàn)自動登陸)(1),2024年程序員學(xué)習(xí),python,爬蟲,selenium

(2)Python學(xué)習(xí)視頻

包含了Python入門、爬蟲、數(shù)據(jù)分析和web開發(fā)的學(xué)習(xí)視頻,總共100多個,雖然沒有那么全面,但是對于入門來說是沒問題的,學(xué)完這些之后,你可以按照我上面的學(xué)習(xí)路線去網(wǎng)上找其他的知識資源進(jìn)行進(jìn)階。

Python爬蟲使用selenium爬取qq群的成員信息(全自動實現(xiàn)自動登陸)(1),2024年程序員學(xué)習(xí),python,爬蟲,selenium

(3)100多個練手項目

我們在看視頻學(xué)習(xí)的時候,不能光動眼動腦不動手,比較科學(xué)的學(xué)習(xí)方法是在理解之后運用它們,這時候練手項目就很適合了,只是里面的項目比較多,水平也是參差不齊,大家可以挑自己能做的項目去練練。

Python爬蟲使用selenium爬取qq群的成員信息(全自動實現(xiàn)自動登陸)(1),2024年程序員學(xué)習(xí),python,爬蟲,selenium

到了這里,關(guān)于Python爬蟲使用selenium爬取qq群的成員信息(全自動實現(xiàn)自動登陸)(1)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包