python 爬取qq群员信息

流程:
打开qq群高级管理网页
将所有表格数据刷新出来
保存网页,存储的网页访问地址:http://qq.site.com/
执行脚本即可

# coding: utf-8
"""
获取QQ群员信息
获取的集合顺序说明:
1 ID
2 昵称
3 群昵称
4 QQ号
5 性别
6 Q龄
7 入群时间
8 等级(积分)
9 最后发言

流程:
打开qq群高级管理网页
将所有表格数据刷新出来
保存网页,存储的网页访问地址:http://qq.site.com/
执行脚本即可
"""
import os
import re
import json
from bs4 import BeautifulSoup
import datetime
import requests as req

# 获取网页以及网页主体信息
content = req.get('http://qq.site.com/')
soup = BeautifulSoup(content.content, "html.parser")
table = soup.find("table", {'id': 'groupMember'})
tb_list = table.find_all("tbody", {'class': 'list'})


# 提取字符
def get_string(info):
    info = info.strip()
    return info


# 提取number
def get_number(info):
    info = re.findall(r'\d+', str(info), re.I)[0]
    return info


# 提取日期 2016/10/27 -> 2016-10-27
def get_date(info):
    info = info.replace("/", "-")
    return info


data = []
for item in tb_list:
    tr_mb = item.find_all("tr", {'class': 'mb'})
    for tr in tr_mb:
        td = tr.find_all("td")
        data.append({
            'nickname': get_string(td[2].get_text()),
            'group_nickname': get_string(td[3].get_text()),
            'qq_number': get_string(td[4].get_text()),
            'sex': get_string(td[5].get_text()),
            'qq_age': get_number(td[6].get_text()),
            'in_time': get_date(get_string(td[7].get_text())),
            'integral': get_number(td[8].get_text()),
        })
    break

print(data)

其他方法:
直接在高级管理,审查元素,network中获取api接口返回数据。以上纯属学习。

你可能感兴趣的:(python 爬取qq群员信息)