机器学习寻找数据集—动态网站获取

简介: 机器学习寻找数据集—动态网站获取

前言

呜呜呜,最近真的好久没有更新了,真的各种大作业,小唐都快要被自己整吐,到时候我期末大作业都会一一开源的,一个是基于python人脸识别app的搭建(Spring
boot+微信小程序+python),另外一个是垃圾识别(Spring
boot+微信小程序+python)换汤不换药,只是改变了python的识别啊哈哈哈哈哈,但是由于垃圾分类的准确率只有80%左右,加卷积和全链接又会欠拟合,所以在这里,我不得不重新去爬一些数据,今天就来说说吧!

小小炫耀一下啊哈哈哈哈哈

分析某平台网络结构

某平台链接:图像搜索

看过我之前静态网站的同学,应该都知道,对于静态网站是如何获取了的,就是去找我们的节点,一层一层的去分析和覆盖,然后提取类容,然后手动模拟换页 忘记了的看这里

那对于动态的呢?

其实原理还是一样的,我们直接去看他的请求文件就可以了,我们直接F12打开我们的元素检查

这个时候,你会发现,喔嚯霍,代码是真的短,那么他所有的数据不说百分百,至少80,90都是请求来的

对于请求的数据,很简单

直接抓包分析,打开我们的网诺(一开始的时候是不记录的)

然后在我们页面那里往下面滑动,你会看到会有几个这样的文件随着我们滑动在增加

点击预览

这里存放的就是我们所有的图片数据啦!!!

里面的thumburl就是我们图片的网诺地址,到时候一个正则就搞下来了

再去观察观察,每一个什么什么acjson的文件

他是不是

30,60,90,120的在增加,很明显就是每30请求一次

简化一下,是不是

https://image.baidu.com/search/acjson?tn=resultjson_com&word={text}&pn=

后面的pn就是我们请求的页面数,前面的text就是我们需要查找的内容,做到这里,恭喜你已经学会了

代码

import os.path
import fake_useragent
import requests
import re
import uuid#用于随机生成不唯一的id(存储图片的时候用),你可以用雪花算法
#规范请求头
headers = {"User-agent": fake_useragent.UserAgent().random,  # 随机生成一个代理请求
           "Accept-Encoding": "gzip, deflate, br",
           "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
           "Connection": "keep-alive"}
img_re=re.compile('"thumbURL":"(.*?)"')#用于定位图片位置
#解析保存图片
def TO_img(img_url,path):
    img_resp=requests.get(img_url,headers=headers)
    uuid_str = uuid.uuid4().hex#随机生成不唯一的id
    path_name=path+"/"+uuid_str+".jpg"#通过路劲以及不唯一的文件名,手动加后缀,jpg
    with open(path_name,'wb') as f:
        f.write(img_resp.content)#content 字节码写入
    f.close()
    
#提取每一页网页的图片
def get_img_list(url,page,path):
    for i in range(1,int(page+1)):
        url=url+str(i*30)
        resp=requests.get(url,headers=headers)
        if resp.status_code==200:#判断请求状态
            img_list_url=img_re.findall(resp.text)#获取就是那个scjson的文件,并提取图片内容,findall是让他以列表返回
            for img_url in img_list_url:
                TO_img(img_url,path)
if __name__ == '__main__':
    indexs =['其他垃圾 一次性快餐盒','其他垃圾 污损塑料','其他垃圾 烟蒂','其他垃圾 牙签','其他垃圾 破碎花盆及碟碗','其他垃圾 竹筷','厨余垃圾 剩饭剩菜',
             '厨余垃圾 大骨头','厨余垃圾 水果果皮','厨余垃圾 水果果肉','厨余垃圾 茶叶渣','厨余垃圾 菜叶菜根','厨余垃圾 蛋壳','厨余垃圾 鱼骨','可回收物 充电宝','可回收物 包',
             '可回收物 化妆品瓶','可回收物 塑料玩具','可回收物 塑料碗盆','可回收物 塑料衣架','可回收物 快递纸袋','可回收物 插头电线','可回收物 旧衣服','可回收物 易拉罐',
             '可回收物 枕头','可回收物 毛绒玩具','可回收物 洗发水瓶','可回收物 玻璃杯','可回收物 皮鞋','可回收物 砧板','可回收物 纸板箱','可回收物 调料瓶','可回收物 酒瓶',
             '可回收物 金属食品罐','可回收物 锅','可回收物 食用油桶','可回收物 饮料瓶','有害垃圾 干电池','有害垃圾 软膏','有害垃圾 过期药物']
    path=r"D:\新建文件夹"
    for index in indexs:
        path_dir=os.path.join(path,index)#拼接文件夹
        print("目前下载 "+str(index))
        if not os.path.isdir(path_dir):#先看看文件夹在不在,不在就创建一个
            os.makedirs(path_dir)
        url = "https://image.baidu.com/search/acjson?tn=resultjson_com&word={text}&pn=".format(text=str(index.split()[1]))#读者需要修改的也就是这个,直接修改text的内容即可
        get_img_list(url,15,path_dir)#三个参数分别为:需要请求的网址,请求多少页,保存路劲

最后来看看效果吧

你问为什么这么少?【手动狗头】

当然测试一下,就给别人啦!!!
啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈

相关文章
|
6月前
|
机器学习/深度学习 算法 数据挖掘
【Python机器学习】K-Means对文本聚类和半环形数据聚类实战(附源码和数据集)
【Python机器学习】K-Means对文本聚类和半环形数据聚类实战(附源码和数据集)
183 0
|
8天前
|
机器学习/深度学习 算法 PyTorch
用Python实现简单机器学习模型:以鸢尾花数据集为例
用Python实现简单机器学习模型:以鸢尾花数据集为例
25 1
|
1月前
|
XML JSON 数据可视化
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
本文详细介绍了不同数据集格式之间的转换方法,包括YOLO、VOC、COCO、JSON、TXT和PNG等格式,以及如何可视化验证数据集。
60 1
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
|
3月前
|
UED 存储 数据管理
深度解析 Uno Platform 离线状态处理技巧:从网络检测到本地存储同步,全方位提升跨平台应用在无网环境下的用户体验与数据管理策略
【8月更文挑战第31天】处理离线状态下的用户体验是现代应用开发的关键。本文通过在线笔记应用案例,介绍如何使用 Uno Platform 优雅地应对离线状态。首先,利用 `NetworkInformation` 类检测网络状态;其次,使用 SQLite 实现离线存储;然后,在网络恢复时同步数据;最后,通过 UI 反馈提升用户体验。
88 0
|
3月前
|
机器学习/深度学习 TensorFlow 数据处理
分布式训练在TensorFlow中的全面应用指南:掌握多机多卡配置与实践技巧,让大规模数据集训练变得轻而易举,大幅提升模型训练效率与性能
【8月更文挑战第31天】本文详细介绍了如何在Tensorflow中实现多机多卡的分布式训练,涵盖环境配置、模型定义、数据处理及训练执行等关键环节。通过具体示例代码,展示了使用`MultiWorkerMirroredStrategy`进行分布式训练的过程,帮助读者更好地应对大规模数据集与复杂模型带来的挑战,提升训练效率。
80 0
|
3月前
|
机器学习/深度学习 算法 数据挖掘
scikit-learn.datasets 机器学习数据集
scikit-learn.datasets 机器学习数据集
36 0
|
3月前
|
机器学习/深度学习 数据可视化 搜索推荐
【python机器学习】python电商数据K-Means聚类分析可视化(源码+数据集+报告)【独一无二】
【python机器学习】python电商数据K-Means聚类分析可视化(源码+数据集+报告)【独一无二】
141 0
|
6月前
|
机器学习/深度学习 数据采集 人工智能
论文介绍:机器学习中数据集规模增长的极限分析
【5月更文挑战第17天】论文《机器学习中数据集规模增长的极限分析》探讨了数据集大小对AI模型性能的影响,预测语言数据可能在2026年前耗尽,图像数据在2030-2060年可能面临相同问题。研究显示数据积累速度无法跟上数据集增长,可能在2030-2040年间导致训练瓶颈。然而,算法创新和新数据源的发展可能缓解这一问题。[链接](https://arxiv.org/pdf/2211.04325.pdf)
99 2
|
5月前
|
机器学习/深度学习 算法 PyTorch
【从零开始学习深度学习】45. Pytorch迁移学习微调方法实战:使用微调技术进行2分类图片热狗识别模型训练【含源码与数据集】
【从零开始学习深度学习】45. Pytorch迁移学习微调方法实战:使用微调技术进行2分类图片热狗识别模型训练【含源码与数据集】