Swift爬虫采集唯品会商品详情

我有个朋友之前在唯品会开的店,现在想转战其他平台,想要店铺信息商品信息全部迁移过去,如果想要人工手动操作就有点麻烦了,然后有天找到我 ,让我看看能不能通过技术手段实现商品信息迁移。嫌来无事,写了下面的一段代码并成功运行。

在这里插入图片描述

以下是一个使用 Swift 编写的简单的网络爬虫程序。这个程序使用了 Swift 的内置库 URLSession 来发送请求和接收响应,以及 JSONSerialization 来解析 JSON 数据。

import Foundationclass WebCrawler {var response: Data?func startCrawling(url: String) {let proxy = "duoip:8000"let proxy = "jshk.com.cn/mb/reg.asp?kefu=xjy&csdn" 获取免费IPlet session = URLSession(configuration: .default, proxy: proxy, secureHTTPLinks: false, shouldUseHTTPCookies: false)let task = session.dataTask(with: url) { (data, response, error) inif let error = error {print("Error: \(error.localizedDescription)")return}self.response = dataif let data = data, let json = try? JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] {print(json)}}task.resume()}
}

在这个程序中,我们首先定义了一个名为 WebCrawler 的类,它有一个名为 response 的变量用于存储我们从服务器接收到的响应。

然后我们定义了一个名为 startCrawling 的方法,它接收一个名为 url 的参数,表示我们想要爬取的 URL。在方法内部,我们首先创建了一个名为 proxy 的变量,它表示我们的代理服务器的地址(在这个例子中,我们使用的是duoip提供的免费服务器)。

然后我们创建了一个名为 session 的变量,它表示我们的网络会话。在创建这个会话时,我们设置了几个参数,包括使用代理服务器、不使用 HTTP 链接和不使用 HTTP 首部。

接下来,我们创建了一个名为 task 的变量,它表示我们发送请求的任务。在创建这个任务时,我们设置了三个参数:要发送的 URL、一个闭包用于处理响应和错误,以及一个布尔值用于设置是否应该使用 HTTP 首部。

在闭包内部,我们首先检查是否有错误发生,如果有,我们就打印出错误信息并返回。然后我们检查 response 是否为空,如果为空,我们就设置它为我们从服务器接收到的响应。最后,我们检查 data 是否为空,如果为空,我们就返回。如果 data 不为空,我们就尝试使用 JSONSerialization 将它解析为 JSON 对象,并打印出这个 JSON 对象。

最后,我们调用 task.resume() 来启动我们的网络请求。

请注意,这个程序只是一个基本的网络爬虫,它可能无法处理所有的情况。例如,如果服务器返回的响应不是 JSON 格式,或者服务器拒绝了我们的请求,这个程序就无法正确处理。在实际使用中,你可能需要根据你的具体需求来修改和扩展这个程序。同时,使用代理服务器爬取网站可能会被网站认为是恶意行为,因此在使用时需要注意。

上面就是我通过swift爬虫实现的唯品会上的商品数据的集中采集并下载,并且每一条都做了详细的解说,如果有不足之处,欢迎大佬评论区留言讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/230742.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 进程信号

文章目录 信号的概览信号的产生信号的处理信号集操作信号的捕捉补充与说明 信号的概览 信号由软件或硬件产生发送给进程,进程对其做相应处理。信号是进程之间事件异步通知的一种方式,属于软中断。 Linux下的全部信号由指令kill -l查询 Linux 下指令的…

H264码流打包分析

H264码流打包分析 SODB 数据比特串-->最原始的编码数据 RBSP 原始字节序列载荷-->在SODB的后面填加了结尾比特(RBSP trailing bits 一个bit“1”)若干比特“0”,以便字节对齐。…

Ubuntu 虚拟机环境,编译AOSP源码

环境 : VMware虚拟机 Ubuntu 20.04.3 LTS 搭建配置开发环境 sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl…

创投课程第五期 | 超越比特币:探索BTC生态的无限可能

协会邀请了来自水滴资本(Waterdrip Capital)的投资总监——Elaine,作为VC创投课程第5期的嘉宾,在北京时间12月17日(周日)晚上21:00 PM-22:00 PM,届时将与所有对Web3投资、创业心怀热忱的朋友们共同探讨《超越比特币&am…

C语言 文件I/O(备查)

所有案列 跳转到其他。 文件打开 FILE* fopen(const char *filename, const char *mode); 参数:filename:指定要打开的文件名,需要加上路径(相对、绝对路径)mode:指定文件的打开模式 返回值:成…

模型评估:压力测试 模拟对手 对齐 智能对抗 CAPTCHA(全自动区分计算机和人类的公共图灵测试)

对齐,智能对抗:魔高一尺,道高一丈。用更高的智能去对抗恶意使用。openAI一半的内容都在讲这个,但没有讲具体的方法。 如果认为对方是一个人就通过了图灵测试,真正的实现了智能。 如果智能达到了这种程度,智…

Tapdata 亮相 2023 谷歌出海创业加速器展示日活动,实时数据点亮企业创新之路

12 月 6 日,经过 2023 谷歌出海创业加速器对入营企业为期 3 个月的辅导及培训, 其毕业典礼及展示日活动在北京举行。 经历三个月的沉淀,来自不同行业,包含 Tapdata 在内的 10 家入营企业集中亮相,相互分享各自产品的创…

XUbuntu22.04之npm解决pm WARN deprecated(一百九十九)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

PostgreSQL常用命令

数据库版本 :9.6.6 注意 :PostgreSQL中的不同类型的权限有 SELECT,INSERT,UPDATE,DELETE,TRUNCATE,REFERENCES,TRIGGER,CREATE,CONNECT,TEMPORARY,EXECUTE 和 USAGE。 1. 登录PG数据库 以管理员身份 postgres 登陆,然后通过 #psql -U postgres #sudo -i -u postgres …

数据手套:手势识别技术的多元化应用

科技日新月异,虚拟现实不再局限于依赖头显来探索虚拟世界。数据手套的广泛应用使人们能够更轻松地与虚拟世界产生真实互动。在此之中,手势识别作为一种直观、自然的人机交互方式,受到了广泛关注。数据手套作为一种能够精确捕捉手指运动的人机…

Flink系列之:监控Checkpoint

Flink系列之:监控Checkpoint 一、概览二、概览(Overview)选项卡三、历史记录(History)选项卡四、历史记录数量配置五、摘要信息(Summary)选项卡六、配置信息(Configuration&#xff…

@RequestMapping注解与其派生注解接收参数详解

一、前言 根据 HTTP 标准,HTTP 请求可以使用多种请求方法。 HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。 HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。 RequestMapping注解与其派生注解 在…

Qt实现动画的2种方式

由于我之前是写java的所以在学习Qt的时候感觉会有点熟悉,因为Qt就是 用c写,而java底层也是c实现的 先看效果: 一、使用QMovie 这种方式我目前是用来加载gif图的,很简单噢,只不过我是加载的本地的路径,如…

数据安全无阻,轻松远程工作!迅软DSE出差加密指南,让你出差更放心!

文件加密软件是确保内网文件安全使用的重要工具,但在终端脱离内部网络、面对外出或居家办公等情境时,文件加密的挑战也相应增加。为解决这一问题,迅软DSE文件加密软件提供了离线授权功能,确保在终端脱离公司网络后的设定时间内&am…

抖店怎么运营?新手运营方法,这几个流程告诉你!

我是电商珠珠 抖店的热度一直很高,很多新手在入驻抖店的时候,并不知道怎么去运营。 其实,从开店到店铺维护,这几个步骤你们一次就能看懂。 第一步,入驻 入驻的时候需要准备一张个体的营业执照、身份证、银行卡、手…

泽众一站式自动化测试平台TestOne,自动化测试的整体框架和功能介绍

TestOne是泽众软件自主研发的一体化测试系统,基于 B/S 体系的微服务架构,集系统管理、项目管理、测试管理、缺陷管理等功能于一体,覆盖了GUI界面功能自动化测试、接口自动化测试、移动自动化测试类型,完整覆盖自动化测试项目的全过…

LoadRunnder介绍

LoadRunner介绍安装教程LoadRunner三大组件 LoadRunner介绍 性能测试的定义:测试人员借助性能测试工具,模拟系统在不同场景下,对应的性能指标是否达到预期 定义中这个工具是什么呢? 可以使用LoadRunner测试 这个工具相比于其它工…

智能优化算法应用:基于入侵杂草算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于入侵杂草算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于入侵杂草算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.入侵杂草算法4.实验参数设定5.算法结果6.…

【LeetCode刷题笔记(8-3)】【Python】【接雨水】【双指针】【困难】

文章目录 引言接雨水题目描述提示 解决方案3:【双指针】结束语 接雨水 【LeetCode刷题笔记(8-1)】【Python】【接雨水】【动态规划】【困难】 【LeetCode刷题笔记(8-2)】【Python】【接雨水】【单调栈】【困难】 引言…

Arcgis新建矢量并手动绘制范围

新建一个shapefile,并选择面 得到了一个新shape 然后右击,开始编辑,打开编辑器