林镕卫——第二次作业

这个作业属于哪个课程 至诚软工实践F班
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzzcxy/ZhichengSoftengineeringPracticeFclass/homework/12532
这个作业的目标 使用Fiddler和python对微信小程序进行爬虫
Gitee 地址 https://gitee.com/linrongwei/rongwei

一、准备工作

(1)下载Fiddler(抓包工具)

1. 从老师云班课给我们资源里面直接下载

2. 下载完成后对Fiddler进行简单配置,让Fiddler可以抓HTTPS

(2)选择编程语言

1. 因为python写爬虫比较简单,我选择使用python来进行爬虫

2. 我在IDEA上下载Python环境,使用IDEA做为开发工具

  点击File -> Settings -> Plugins ->在输入框里输入Python ->选择Python Community Edition进行下载

二、对微信小程序朴朴进行爬虫

参考视频

(1)使用Fiddler用来获取接口

1.先打开Fiddler,然后打开电脑端微信小程序朴朴,随便选择一件商品点击进去(我这边选择“生蚝肉 (冰鲜)190g-200g/份”)。

2.在Fiddler找到对应接口,把接口url复制下来。

3.使用火狐浏览器进行访问,接口下面有什么内容更清晰

(2)使用IDEA进行代码编写

import requests
import datetime
import time

# 获取数据
def getData():
    url = 'https://j1.pupuapi.com/client/product/storeproduct/detail/deef1dd8-65ee-46bc-9e18-8cf1478a67e9/e2c54ed3-85ec-421f-9f50-73671c00a163'
    # 浏览器标识
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 MicroMessenger/7.0.9.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat'
    }
    # 发送请求给url
    productData = requests.get(url, headers=headers).json()
    return productData

def getProduct():
    # 获取相应的值
    response = getData()
    # 匹配商品id
    name = response['data']['name']
    spec = response['data']['spec']
    price = str(response['data']['price'] / 100)
    market = str(response['data']['market_price'] / 100)
    title = response['data']['sub_title']
    # 输出商品信息
    print('---------------' + '商品: ' + name + '---------------')
    print('规格:' + spec)
    print('价格: ' + price)
    print('原价/折扣价: ' + market + '/' + price)
    print('详细内容: ' + spec + '; ' + title)
    print('---------------' + '商品: ' + name + '的价格波动---------------')

def monitor():
    # 监控价格
    while 1:
        # 获取相应的值
        resonse = getData()
        price = str(resonse['data']['price'] / 100)
        # 获取当前时间
        now_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        print('当前时间为' + now_time + ', ' + '价格为' + price)
        time.sleep(1)

# 调用函数
def run():
    getProduct()
    monitor()

# 运行
run()

(3)运行效果

三、上传gitee

(1)使用IDEA软件下载gitee插件,将gitee账号登陆,加入到IDEA中

  File -> Settings -> Plugins ->在输入框里输入gitee ->选择gitee进行下载

四、遇到的问题

(1)在Fiddler配置完成后,打开Fiddler后我就打不开网站和电脑微信小程序,关掉Fiddler后就可以正常打开

  目前解决方法:把Fiddler更新到最新版本,问题就解决了

(2).在使用requests时发现无法使用,IDEA在下载Python环境时没有requests一起下载下来,需要单独下载

  先找到IDEA下载的python环境位置,因为一开始一直默认下一步不知道环境放哪里,后面根据IDEA的SDKs找到位置
  File -> Porject Structure -> SDKs

  使用cmd下载requests请求库,cd 到Scripts下在命令行输入 pip install requests

(3)在复制`headers里面内容时由于多了一个空格导致代码报错

posted @ 2022-03-20 00:48  服了,什么名字都没有  阅读(69)  评论(0)    收藏  举报