python爬虫Day 04
一、爬取豌豆荚:
1.访问游戏主页
https://www.wandoujia.com/category/6001
2.点击查看更多,观察network内的请求
- 请求url
page2:
https://www.wandoujia.com/wdjweb/api/category/more?
catId=6001&subCatId=0&page=2&ctoken=vbw9lj1sRQsRddx0hD-XqCNF
page3:
https://www.wandoujia.com/wdjweb/api/category/more?
catId=6001&subCatId=0&page=3&ctoken=vbw9lj1sRQsRddx0hD-XqCNF
page4:
https://www.wandoujia.com/wdjweb/api/category/more?
catId=6001&subCatId=0&page=4&ctoken=vbw9lj1sRQsRddx0hD-XqCNF
3.循环拼接30个接口
4.解析返回的数据,获取每一个app数据
'''''' ''' 爬取豌豆荚app数据 - 请求url page2: https://www.wandoujia.com/wdjweb/api/category/more?catId=6001&subCatId=0&page=2&ctoken=vbw9lj1sRQsRddx0hD-XqCNF ''' import requests from bs4 import BeautifulSoup import re ''' 爬虫三部曲 ''' # 1.发送请求 def get_page(url): response = requests.get(url) return response # 2.解析数据 def parse_data(text): soup = BeautifulSoup(text, 'lxml') # print(soup) li_list = soup.find_all(name='li', class_="card") # print(li_list) for li in li_list: # print(li) # print('tank' * 100) app_name = li.find(name='a', class_="name").text # print(app_name) app_url = li.find(name='a', class_="name").attrs.get('href') # print(app_url) download_num = li.find(name='span', class_="install-count").text # print(download_num) app_size = li.find(name='span', attrs={"title": re.compile('\d+MB')}).text # print(app_size) app_data = f''' 游戏名称: {app_name} 游戏地址: {app_url} 下载人数: {download_num} 游戏大小: {app_size} \n ''' print(app_data) with open('wandoujia.txt', 'a', encoding='utf-8') as f: f.write(app_data) f.flush() if __name__ == '__main__': for line in range(1, 2): url = f'https://www.wandoujia.com/wdjweb/api/category/more?catId=6001&subCatId=0&page={line}&ctoken=vbw9lj1sRQsRddx0hD-XqCNF' print(url) # 1.发送请求 # 往接口发送请求获取响应数据 response = get_page(url) # print(response.text) # import json # json.loads(response.text) # print(type(response.json())) # print('tank ' * 1000) # 把json数据格式转换成python的字典 data = response.json() # print(data['state']) # 通过字典取值获取到li文本 text = data.get('data').get('content') # 2.解析数据 parse_data(text)
二 、微信模块
1.安装与使用
pip3 install -U wxpy
微信模块的使用
from wxpy import * # cache_path=True 保留微信缓存信息 # bot = Bot(cache_path=True) bot = Bot(cache_path=True) print() # 查找好友: search('好友备注名') dsb = bot.search('浙江万里学院胥毅')[0] # 查找群 # group = bot.groups().search('群名称') # 接收群消息 # @bot.register(chats=group) # 接收指定好友消息 @bot.register(chats=dsb) def get_msg(msg): # 接收所有的消息 # 判断消息的发送者是否是胥毅 if msg.sender == dsb: # True 打印胥毅发送的消息 print(msg.text) return '你真的是DSB!' # 让微信程序一直运行 embed()
微信好友比例图
from wxpy import * # pip3 install pyecharts==0.5.8 from pyecharts import Pie import webbrowser # 实例化bot对象 bot = Bot() # 获取微信所有好友对象 friends = bot.friends() # 设置图形展示比例名称 attr = ['男朋友', '女朋友', '未知性别'] # 比例名称一一对应的值 value = [0, 0, 0] # 循环所有好友对象 for friend in friends: # sex好友性别 if friend.sex == 1: # 等于1代表男性 value[0] += 1 elif friend.sex == 2: # 等于2代表女性 value[1] += 1 else: value[2] += 1 # 实例化一个饼状图对象, 设置名称为Tank老师的好朋友们 pie = Pie("Tank老师的好朋友们") # 通过饼状图对象add方法添加值 # is_label_show: True ,光标悬浮时展示好友比例 %比 pie.add("", attr, value, is_label_show=True) # 生成一个性别html文件 pie.render('sex1.html') # 自动打开sex.html文件 webbrowser.open('sex.html')

浙公网安备 33010602011771号