qq群爬蟲,python 爬取扣扣群成員信息

 2023-10-21 阅读 39 评论 0

摘要:爬取扣扣群成員 通過 https://qun.qq.com/member.html 這個網頁你可以登錄網頁版的扣扣群號管理。 這樣你就可以通過網頁來爬取信息了。涉及到個人隱私,這里就不放圖片了。 請看代碼: import csv import timefrom selenium import webdriver# 下拉加載頁面 def

爬取扣扣群成員

通過 https://qun.qq.com/member.html 這個網頁你可以登錄網頁版的扣扣群號管理。
這樣你就可以通過網頁來爬取信息了。涉及到個人隱私,這里就不放圖片了。

請看代碼:

import csv
import timefrom selenium import webdriver# 下拉加載頁面
def scroll_foot(driver):js="var q=document.documentElement.scrollTop=100000"return driver.execute_script(js)# gid后面寫自己要爬取的群號
url = "https://qun.qq.com/member.html#gid=730399676"
driver = webdriver.Chrome()driver.get(url)# 要往下滑動的次數,要滑動幾次就寫幾次循環
for i in range(3):scroll_foot(driver)time.sleep(1)# 爬出總的扣扣信息
elements = driver.find_elements_by_css_selector('tbody.list > tr.mb')
with open('QQ1.csv', 'a+', newline='', encoding='utf8') as f:writer = csv.writer(f, dialect="excel")writer.writerow(['昵稱', 'QQ號', '性別', 'Q齡', '入群時間', '最后發言'])for element in elements:# print(element.text)name = element.find_element_by_css_selector('td.td-user-nick span').textQQs = element.find_elements_by_css_selector('td')data = {}data['昵稱'] = QQs[2].textdata['QQ號'] = QQs[4].textdata['性別'] = QQs[5].textdata['Q齡'] = QQs[6].textdata['入群時間'] = QQs[7].textdata['最后發言'] = QQs[9].textprint(data)if data:# 存入csv中writer.writerow([data['昵稱'],data['QQ號'],data['性別'],data['Q齡'],data['入群時間'],data['最后發言']])

還有寫的比較規范的代碼:

import csv
import time
from lxml import etree
from selenium import webdriverdef parser():driver = webdriver.Chrome()return driverdef login(url):driver =parser()driver.get(url)time.sleep(5)get_data(driver)return driverdef get_data(driver):for _ in range(20):scroller(driver)time.sleep(1)data = driver.page_sourcehtml = etree.HTML(data)mem_info_list = html.xpath('//*[@id="groupMember"]/tbody[@class="list"]/tr')   # TODO  QQ群成員列表with open('QQqianfeng.csv', 'a+', newline='', encoding='utf-8') as f:writer = csv.writer(f, dialect="excel")writer.writerow(['成員', 'QQ號', '性別', 'Q齡', '入群時間', '最后發言'])for mem_info in mem_info_list:data = {}data['成員'] = str(mem_info.xpath('./td[3]//text()')[3]).replace('\U0001f60a','').strip()data['QQ號'] = str(mem_info.xpath('./td[5]//text()')[0]).replace('\U0001f60a','').strip()data['性別'] = str(mem_info.xpath('./td[6]//text()')[0]).replace('\U0001f60a','').strip()data['Q齡'] = str(mem_info.xpath('./td[7]//text()')[0]).replace('\U0001f60a','').strip()data['入群時間'] = str(mem_info.xpath('./td[8]//text()')[0]).replace('\U0001f60a','').strip()data['最后發言'] = str(mem_info.xpath('./td[9]//text()')[0]).replace('\U0001f60a','').strip()print(data)if data:# writer.writerow(['成員', 'QQ號', '性別', 'Q齡', '入群時間', '最后發言'])writer.writerow([data['成員'].replace('\xa0',''),data['QQ號'].replace('\xa0','').replace('\xa0',''), data['性別'].replace('\xa0',''),data['Q齡'].replace('\xa0',''),data['入群時間'].replace('\xa0',''),data['最后發言'].replace('\xa0','')])def logout(driver):driver.find_element_by_class_name("logout").click()driver.quit()driver.close()def scroller(driver):js = "var q=document.documentElement.scrollTop=100000"driver.execute_script(js)def run():QQnum = input('請輸入一個【一個或多個QQ賬號】:')for num in QQnum.split(','):url = "https://qun.qq.com/member.html#gid=828313874"driver = login(url)logout(driver)   # TODO  退出登錄if __name__ == '__main__':run()

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/163694.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息