1. 用到工具有mitmproxy 、appium
  2. 热门榜页面

    3.抓取到的数据

from appium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
import threading
import csv
import json
import timedef appium():desired_caps = {}desired_caps['platformName'] = 'Android'desired_caps['platformVersion'] = '10'desired_caps['deviceName'] = 'NX629J'desired_caps['appPackage'] = 'com.taptap'desired_caps['appActivity'] = 'com.play.taptap.ui.SplashAct'desired_caps['noReset'] = Truedriver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)paihang = WebDriverWait(driver,60).until(lambda d: d.find_element_by_xpath('//*[@text="排行"]'))paihang.click()state = Truewhile state:try:indexs = driver.find_elements_by_xpath('//android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.FrameLayout[1]/android.widget.TextView')except:continuefor index in indexs:if index.text == '150':state =Falsedriver.quit()time.sleep(0.5)driver.swipe(450, 1641, 450, 800, 500)index = 0
list = []
def parse(text):data_list = json.loads(text)['data']['list']for item in data_list:global indexid = item['id']if id not in list:list.append(id)index += 1else:continuecategory = item['category']title = item['title']try:subtitle = item['hints'][0]except:subtitle = ''star = item['stat']['rating']['score']tags = []for tag in item['tags']:tags.append(tag['value'])game_item = [index, id, category, title, star, subtitle, tags]print(game_item)save(game_item)def save(game_item):writer_file = open('taptap.csv', 'a', encoding='utf-8', newline='')writer = csv.writer(writer_file)writer.writerow(game_item)writer_file.close()def response(flow):url = 'https://api.taptapdada.com/app-top/v1/hits'if flow.request.url.startswith(url):parse(flow.response.text)app = threading.Thread(target=appium)
app.start()
  • 感觉把mitmproxy服务和 appuim 分开写会好一些,一个脚本在命令行启动,另一个脚本自动化操作。其实通过api抓取更加方便。
# 通过api抓取
import json
import requestsheaders = {'Host':"api.taptapdada.com"
}for i in range(15):url = 'https://api.taptapdada.com/app-top/v1/hits?limit=10&from={}&type_name=android_hot_cn&X-UA=V%3D1%26PN%3DTapTap%26VN_CODE%3D204082000%26LOC%3DCN%26LANG%3Dzh_CN%26CH%3Dbaiduzhushou%26UID%3D8f2ea855-5b0e-4b68-8991-39b9d233b4eb%26VID%3D686929'.format(i*10)response = requests.get(url,headers=headers)data_list = json.loads(response.text)['data']['list']for item in data_list:id = item['id']category = item['category']title = item['title']try:subtitle = item['hints'][0]except:subtitle = ''star = item['stat']['rating']['score']tags = []for tag in item['tags']:tags.append(tag['value'])# 详情页api#detail_url = 'https://api.taptapdada.com/app/v1/detail-by-id/{}?X-UA=V%3D1%26PN%3DTapTap%26VN_CODE%3D204082000%26LOC%3DCN%26LANG%3Dzh_CN%26CH%3Dbaiduzhushou%26UID%3D8f2ea855-5b0e-4b68-8991-39b9d233b4eb%26VID%3D686929'.format(id)game_item = [id, category, title, star, subtitle, tags]print(game_item)

python 爬取taptap热门榜相关推荐

  1. python爬取微博热门消息(一)——效果展示

    微博的热搜榜对于研究大众的流量有非常大的价值. 今天的教程就来说说如何爬取微博的热搜榜. 感兴趣的小伙伴可以 收藏 + 关注 哦! 另外,关于本项目的效果展示,以及教程,点击一下链接即可. pytho ...

  2. python爬取微博热门消息(三)—— 爬取微博热门信息的功能函数

    微博的热搜榜对于研究大众的流量有非常大的价值. 今天的教程就来说说如何爬取微博的热搜榜. 感兴趣的小伙伴可以 收藏 + 关注 哦! 另外,关于本项目的效果展示,以及教程,点击一下链接即可. pytho ...

  3. python爬取豆瓣电影榜单

    python爬取豆瓣电影榜单 python爬取豆瓣电影榜单并保存到本地excel中,以后就不愁没片看了. 目标 确定我们想要抓取的电影的相关内容. 抓取豆瓣top250电影的排名.电影名.评价(总结很 ...

  4. 用Python爬取2019富豪榜数据分析

    本文转自公众号『简说Python』,详情请扫码关注该公众号: 零 写在前面 前面三篇文章讲了数据分析虚拟环境创建和pandas读写CSV.TSV.JSON.Excel.XML格式的数据,今天我们继续探 ...

  5. 【爬虫实战】Python 爬取起点热榜,再也不怕没有小说看了!

    最近看完一部小说<大奉打更人>,看得我热血沸腾.但是看完后,有选择困难症的我又不知道可以看什么了. 于是,我打算开发一个爬虫,爬取起点热榜. 一.导入所需库 我们使用 requests 来 ...

  6. Python爬取猫眼电影榜单评分,以及评论

    猫眼电影评论爬取 [目标] (1)爬取榜单电影名称以及评分,简单的数据可视化. (2)爬取< 你好,李焕英>的评论,用词云显示 第一步:了解反爬机制: 1.请求过多,ip地址会被封掉24h ...

  7. python爬取豆瓣图书榜单 并存放数据库心得

    最近javaweb 项目存放图书的数据库存放的图书太少 决定去豆瓣榜单 爬取一些数据 首先是爬取网页得到数据 以字典类型先储存下来 贴上代码 def init(self, keyword): self ...

  8. python爬取前程无忧热门城市职位信息

    问题描述 从前程无忧网站:https://www.51job.com/上查询热点城市(北京.上海.广州.深圳.武汉.西安.杭州.南京.成都.苏州)程序员的招聘信息.要求在Excel文件中保存招聘信息( ...

  9. python爬取今日热榜数据到txt文件

    今日热榜:https://tophub.today/ 爬取数据及保存格式: 爬取后保存为.txt文件: 部分内容: 源码及注释: import requests from bs4 import Bea ...

  10. python爬取快手粉丝榜_[Python] 【原创开源】快手爬虫,根据id批量爬取用户的所有图集和视频...

    分享 写在前面代码功能如题,根据快手用户的id来爬取用户所有公开作品,包括图集和视频. 原理:其实就是利用基于chromium内核的浏览器自带的devtools对所有请求进行排查找出包含作品链接的请求 ...

最新文章

  1. matlab nt什么意思,胎儿nt是什么意思
  2. php用什么工具调试代码,详细介绍利用开源的DebugBar工具调试PHP代码(图文)
  3. mysql5.6 忘记root密码后,如何找回密码?
  4. java jtable应用源码_JTable的应用(一)
  5. vscode中experimentaldecorators报错
  6. zxing二维码的生成与解码(C#)
  7. /bin/bash^M: bad interpreter: No such file or directory
  8. 九里机器人_电子科技大学九里堤校区青少年科教基地为农民工留守子女开展科技讲学公益活动...
  9. 绘制屏幕时给单选按钮分组
  10. 【转】【Asp.Net MVC】asp.net mvc Model验证总结及常用正则表达式
  11. womic网络错误_WO Mic驱动程序下载
  12. iOS 获取当前app的名称和版本号
  13. 【STM32训练—TOF激光测距模块】第一篇、STM32驱动TOF10120测量距离
  14. 从零搭建若依环境(非分离版)
  15. exchange2007+outlook2007,无法使用外出助理
  16. PDF文件压缩的简单方法
  17. 模式的秘密——观察者模式
  18. 富士通DPK8400E打印机
  19. 性能测试方法详解(验收性能、负载、压力、配置、并发、可靠性、失败恢复)
  20. 文本数据增强-同义词替换、随机交换、随机插入、随机删除

热门文章

  1. 大数定律、中心极限定理总结
  2. OpenCV 官方版本百度云盘下载
  3. java定时器 实现2秒打印一次,1秒打印一次,循环往复
  4. python 输入整数_python输入整数
  5. 内测体验:GitHub Copilot智能代码补全自动写代码插件
  6. 新能源汽车整车控制器开发
  7. 神经网络反向传播算法及代码实现
  8. 成为技术主管需要做到的三点
  9. 市场调研中的定性/定量分析
  10. BOSS直聘简历导出为PDF文档