专栏名称: Python学习交流
每天更新,更新python相关的知识。希望诸君有所收获!
目录
相关文章推荐
Python爱好者社区  ·  史上最强!PINN杀疯了 ·  昨天  
Python爱好者社区  ·  英伟达憾失DeepSeek关键人才?美国放走 ... ·  昨天  
Python爱好者社区  ·  离谱!下载DeepSeek最高判刑20年? ·  2 天前  
Python爱好者社区  ·  1885页的Python完全版电子书 ·  3 天前  
Python开发者  ·  请立即拿下软考证书(政策风口) ·  4 天前  
51好读  ›  专栏  ›  Python学习交流

Python爬微信好友头像,性别,所在地区

Python学习交流  · 公众号  · Python  · 2019-03-11 14:42

正文

关注我们

学习更多Python知识


基本环境配置

版本: Python3.6

系统: Windows

相关模块:

import   requests
import  json
from collections import Counter
from pyecharts import Pie
import hashlib


基本的爬虫思路

  • 第一步,获取Url数据

  • 第二步,看看是不是反爬

  • 第三步,取出数据研究类型

  • 第四步 ,筛选数据,统计图表

  • 第五步,图片下载

01

获取URL


02

是否反爬

headers = {
           'Cookie'' ~自己的 ',
        'Host''wx.qq.com',
        'Upgrade-Insecure-Requests''1',
         'User-Agent''Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/'
        }

03

获取数据

数据是这样的

dict1 = json.loads(list_data.text)
print("%s: %s" % ("好友数" ,dict1["MemberCount"]))  #字典
listdata=dict1["MemberList"]  # 集合
    for  lists  in  range(0,dict1["MemberCount"]):  # 把全部用户的地址存储
        HeadImgUrls.append(listdata[lists ]["HeadImgUrl"])
        sexs.append(listdata[lists]["Sex"])
        Province.append(listdata[lists]["Province"]+""+listdata[lists]["City"])
    rest=Counter(Province)   #这里是分组


04

筛选数据,统计图表

pie = Pie("微信好友用户统计:好友%s" %( +dict1["MemberCount"]), title_pos='center',width=1400,height=600)
    pie.add(
        "",
        countProvin,
        Countcity,
        radius=[4075],
        label_text_color=None,
        is_label_show=True,
        legend_orient="vertical",
        legend_pos="left",
    )
    pie.render()


完整代码

# coding:utf8
import   requests
import  json
from collections import Counter
from pyecharts import Pie
import hashlib
# 微信Url数据获取连接
Wxurl="https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxgetcontact?lang=zh_CN&r=1551517351463&seq=0&skey=@crypt_80cc7620_ac3680d314a5860438086e5d54cf177d"
headers = { 
          Cookie': 'cookie',
        '
Host': 'wx.qq.com',
        '
Upgrade-Insecure-Requests': '1',
         '
User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36'
        }
#TODO  Province_City 使用到的数组集合
Province = []
Countcity=[]
#TODO  存储性别
sexs=[]
#TODO  存储图片
HeadImgUrls=[]
def SexFun(Sexrests):
    # 性别方法
    print("男%s" % Sexrests[1])
    print("女%s" % Sexrests[2])
    print("公众号%s" % Sexrests[0])
    pie = Pie("微信好友性别统计" , title_pos='
center', width=1400, height=600)
    pie.add(
        "",
        ['
','','未知'],
        [Sexrests[1],Sexrests[2],Sexrests[0]],
        radius=[40, 75],
        title='
sex',
        label_text_color=None,
        is_label_show=True,
        legend_orient="vertical",
        legend_pos="left",
    )
    pie.render('
sex.html')
    print(Sexrests)
#TODO  Wechar_data  方法
def Wechar_data(Wxurl,headers):
    global  Province   # 转换为全局变量,假如不转换的话,会报错的
    global  Countcity
    global sexs
    global HeadImgUrls
    list_data = requests.get(Wxurl,headers=headers)
    list_data.encoding = "utf-8"
    print(list_data.text)
    dict1 = json.loads(list_data.text)
    print("%s: %s" % ("好友数" ,dict1["MemberCount"]))  #字典
    listdata=dict1["MemberList"]  # 集合
    #print(listdata)
    for  lists  in  range(0,dict1["MemberCount"]):  # 把全部用户的地址存储
        HeadImgUrls.append(listdata[lists]["HeadImgUrl"])
        sexs.append(listdata[lists]["Sex"])
        Province.append(listdata[lists]["Province"]+""+listdata[lists]["City"])
    rest=Counter(Province)   #这里是分组
    #print(rest)
    """
    Counter({'
': 29, '湖南郴州': 21, '湖南长沙': 16, '广东深圳': 14, '广东中山': 9, '广东广州': 8, '北京朝阳': 7, '湖南娄底': 4, '湖南怀化': 4, '北京海淀': 3, '湖南益阳': 3, '上海浦东新区': 3, '安徽合肥': 2, '北京西城': 2, '广东佛山': 2, '广东湛江': 2, '湖南株洲': 2, '浙江杭州': 1, '北京东城': 1, '广东': 1, '四川德阳': 1, '辽宁丹东': 1, '河南三门峡': 1, '湖南张家界': 1, '广东肇庆': 1, '上海长宁': 1, '澳门路环岛': 1, '江苏': 1, '上海': 1, '湖南衡阳': 1, '河南南阳': 1, '湖南永州': 1, '北京': 1, 'North Shore': 1, '湖北恩施': 1, '湖南湘潭': 1, '湖南岳阳': 1, '湖南': 1, 'EnglandSheffield': 1, '






请到「今天看啥」查看全文


推荐文章
Python爱好者社区  ·  史上最强!PINN杀疯了
昨天
Python爱好者社区  ·  离谱!下载DeepSeek最高判刑20年?
2 天前
Python爱好者社区  ·  1885页的Python完全版电子书
3 天前
Python开发者  ·  请立即拿下软考证书(政策风口)
4 天前
盖世汽车每日速递  ·  划重点!特斯拉股东年会除了Model 3还说了啥?
7 年前