基于微信小程序+爬虫制作一个表情包小程序

跟朋友聊天斗图失败气急败坏的我选择直接制作一个爬虫表情包小程序,从源头解决问题,从此再也不用担心在斗图中落入下风
精彩专栏持续更新↓↓↓
微信小程序实战开发专栏

基于微信小程序+爬虫制作一个表情包小程序_第1张图片 基于微信小程序+爬虫制作一个表情包小程序_第2张图片 基于微信小程序+爬虫制作一个表情包小程序_第3张图片

  • 一、API
    • 1.1 项目创建
    • 1.2 图片爬虫帮助类
    • 1.3 测试窗体
    • 1.4 接口封装
  • 二、小程序
    • 2.1 项目创建
    • 2.2 页面设计
    • 2.3 接口调用
    • 2.4 保存至手机

一、API

1.1 项目创建

  1. 打开Visual Studio,创建新项目,选择ASP.NET Web应用程序(.NET Framework)。

在这里插入图片描述

  1. 填写项目名称及选择对应的保存位置,框架版本我们这里选择4.7.2。

在这里插入图片描述

  1. 选择MVC用它来搭建API接口,其他的选项默认即可。

在这里插入图片描述

1.2 图片爬虫帮助类

在Models文件夹创建一个DownLoad实体类,定义好初始化请求时所需要的属性

基于微信小程序+爬虫制作一个表情包小程序_第4张图片

定义两个函数,用于判断传入的URL是否满足和存在

基于微信小程序+爬虫制作一个表情包小程序_第5张图片

定义发送请求的函数

基于微信小程序+爬虫制作一个表情包小程序_第6张图片

        private void RequestResource(int index)
        {
            int depth;
            string url = "";
            try
            {
                lock (_locker)
                {
                    if (_urlsUnload.Count <= 0)//判断是否还有未下载的URL
                    {
                        _workingSignals.FinishWorking(index);//设置工作实例的状态为Finished
                        return;
                    }
                    _reqsBusy[index] = true;
                    _workingSignals.StartWorking(index);
                    depth = _urlsUnload.First().Value;
                    url = _urlsUnload.First().Key;
                    _urlsLoaded.Add(url, depth);
                    _urlsUnload.Remove(url);
                }

                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
                req.Method = "Get"; //请求方法
                req.Accept = "text/html"; //接受的内容
                req.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)"; //用户代理
                RequestState rs = new RequestState(req, url, depth,index);//回调方法的参数
                var result = req.BeginGetResponse(new AsyncCallback(ReceivedResource), rs);//异步请求
                ThreadPool.RegisterWaitForSingleObject(result.AsyncWaitHandle,
                        TimeoutCallback, rs, _maxTime, true);
            }
            catch (WebException we)
            {
                MessageBox.Show("RequestResource " + we.Message + url + we.Status);
            }
        }

定义处理请求的响应函数

基于微信小程序+爬虫制作一个表情包小程序_第7张图片

将读取的数据保存到本地,图片名称可以自定义,也可以根据下标来递增

基于微信小程序+爬虫制作一个表情包小程序_第8张图片

1.3 测试窗体

函数定义好后,先创建一个窗体测试功能是否能够满足爬取的需求,在现有项目中右击选择新建项目,搜索框输入winform,选择windows窗体应用,跟现有项目创建在同一个目录文件夹下即可

在这里插入图片描述

窗体主要有两个文本框、以及一个ListBox列表,用于填写所爬网址以及保存位置,同时在下方提供两个按钮

基于微信小程序+爬虫制作一个表情包小程序_第9张图片

双击开始爬图按钮,生成对应的点击事件

基于微信小程序+爬虫制作一个表情包小程序_第10张图片

private void beginDownload_Click(object sender, EventArgs e)
{
    
}

在事件中获取文本框所输入的爬取地址以及下载保存地址

基于微信小程序+爬虫制作一个表情包小程序_第11张图片

启动项目测试是否能够正常访问,表情包下载的网址大家可以在网上直接搜索,这里就不写出来了

基于微信小程序+爬虫制作一个表情包小程序_第12张图片

1.4 接口封装

图片爬虫功能没有问题之后就在Controllers文件夹新建一个控制器,同时实现对应的动作方法,接收参数弄一个表情包关键字跟一个目标网址即可

基于微信小程序+爬虫制作一个表情包小程序_第13张图片

public IActionResult DownLoadImage(string sence, string url)
{
    var result = DownLoad.crawler(sence, url);
    return Json();
}

二、小程序

2.1 项目创建

小程序账号申请及项目创建可参考该专栏其他文章步骤内容,这里不再赘述

2.2 页面设计

页面设计主要由搜索框、表情包瀑布流、图片保存按钮组成

基于微信小程序+爬虫制作一个表情包小程序_第14张图片


    
        
        
    
    
        搜索
    

2.3 接口调用

在JS中获取文本框输入的关键字并调用上述步骤所定义的接口

wx.request({
  url: 'https://localhost:44382/home/DownLoadImage',
  method: 'post',
  dataType: "json",
  success: function (res) {
    
  }
});

通过setData的方式将其展示在页面上

基于微信小程序+爬虫制作一个表情包小程序_第15张图片

that.setData({
	list:res.data
});

2.4 保存至手机

这里可以使用wx.saveImageToPhotosAlbum函数,在界面点击item的时候将url作为参数进行传递,并调用下方函数

基于微信小程序+爬虫制作一个表情包小程序_第16张图片

wx.saveImageToPhotosAlbum({
            filePath: res.filePath,
            success: function (data) {
              wx.hideLoading()
              wx.showToast({
                title: '保存成功',
                icon: 'success',
                duration: 2000
              })
})

你可能感兴趣的:(微信小程序,#,小程序实战,微信小程序,小程序,表情包,爬虫,windows)