最近刚刚学完python基础,又把requests、bs4、scrapy粗略的学习了一下。因为决心学编程的动机就是想为自己爬得物app的购买记录,更理想的情况是每天定时自己去爬生成一个可以年\月\日翻看的图表(因为平日的爱好就是做小倒爷哈哈)。本来迫不及待地想来配合fiddler爬一下得物app的购买记录看看自己的学习成果如何,结果发现历史购买数据的api太复杂了,自己完全不知道该如何处理。
关于如何获取购买历史记录的api可以看看这篇文章,本文的主要思路也来源于这篇文章:https://blog.csdn.net/yjack007/article/details/104186974#comments_12815200
我的主要思路:
- 通过adb命令把购买记录截下来传进电脑
- 通过PIL模块把图片中需要的数据部分截取出来
- 调用腾讯云文字识别的api来识别图中文字(本来想用tesseract-ocr的,可是先后用了别人训练好的库,自己又去训练了很多张图,效果都不怎么样)
- 把尺码、时间、价格整理出来放到三个列表中
- 写入excel文件
本人水平有限,刚刚接触编程,写代码水平较差,不嫌弃的可以参考一下下面我的代码。当然,有更好的意见也欢迎大家和我一起交流。
最后,立下flag:未来知识储备足够之日一定回来用更好地方法解决这个问题!
import os, time
from PIL import Image
import re
import xlwt
import base64
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.ocr.v20181119 import ocr_client, models
count = 0
def swipe_screen():
# 向下滑动屏幕
os.system('adb shell input swipe 250 785 300 200')
def screen_shot():
# 屏幕截图到电脑
com1 = 'adb exec-out screencap -p >' + str(count) + '.png'
os.system(com1)
def main():
# 初始化
pages = input('需要爬取的页数: ')
print("请进入'最近购买'页面,并保持屏幕唤醒状态")
for i in