百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

[爬虫技术]一个抓取淘宝和天猫平台商品信息的蜘蛛实现(C#)

bigegpt 2025-04-09 14:19 35 浏览

一个搞JAVA的朋友向他的朋友介绍了我们是专门做爬虫的,正好他的朋友最近在搞一个项目,是需要抓取主流电商商品价格,所以他就让他的朋友来咨询下我们。

某日我去了朋友的朋友的公司,大概5-6个人在那等我了,他们在讨论如何抓取这些信息,他们目前的方案是用WebBrowser并模拟用户点击操作来抓取数据,因为他们觉得电商的店铺商品信息模版每家都不同,而且数据都是动态加载的,所以没法用正则获取之类的(我都表示听不懂了)。

因为以前没有抓过淘宝这类电商网站(我们小公司,搞不了大数据分析-_-!),所以我花了几分钟时间,分析了下淘宝和天猫的页面,模版是不一样,但是需要的数据都是JSON格式返回,这种数据流用HttpRequest方式是再友好不过的了!我就和他们说不需要用Web方式抓取,那样的效率是相当低的,直接抓源码才是王道。

这是搜索店铺关键字“青菜”得到的结果,分析数据包,得到获取数据的地址为:

https://tmatch.simba.taobao.com/?name=dpad&o=j&elemtid=7&count=15&pid=430409_1006&keyword=%C7%E0%B2%CB

这个地址获取到的代码(部分示例):

p4presult =[{"REDKEY":"\u6ce1\u83dc\u814c\u5236","LOCATION":"","WANGWANGID":"mslibilly","GRADE":"73068","ISMALL":"0","EURL":"https:\/\/click.simba.taobao.com\/cc_im?p=%C7%E0%B2%CB&s=551112387&k=417&e=7YCatPHk%2FF5hoLrwsPpYV3puZ%2Fzagl5qD5xrGhdGfNFR%2FMI8Ma2TJp%2BEXxfslVeLi1JzEvsCyQWWGvcByUVtX2eS%2B3UZTe47MM%2B3jOJi2zW%2FVBgc1EAWB5X%2FsF%2FL%2BC29nmE%2BkkFcKYE8qbPMVyo4DaVZk9GTLuFuveNkwDZO%2B4dGFiz9B1zOtihdfoeHEuwzFyKSMYwxw2suwttNEWKHRt1S4XMZVG3ZG%2FTfPOTEP3I%2FAziju%2BHWPSv3KlO5q2yrE51XnaPzYhPPXtx8ota2cAxZLhp6giIWOQdKU6bV%2Bc4yIKIlmswCq4zyJPUuvLna3PJEGgbVC32jzB2stJTlhOuTLzOI%2FOAyK46g51dBbTX6TxBh0Blia1cmBl3YwvWUnb8MUGm%2Fw5jrnjTSKUokU0BcjQpXcTkT","SELLERID":"70759806","CREATIVEELEMENTS":{"DESCRIPTION":"","DISPLAYURL":"https:\/\/msesd.taobao.com\/index.htm?spm=2013.1.w5002-9925530888.2.cuAsCj","IMGURL":"https:\/\/img.alicdn.com\/imgextra\/i1\/14344067885902339\/TB282E_bFXXXXcOXXXXXXXXXXXX_!!12414344-0-saturn_solar.jpg_sum.jpg"

这么友好的数据,不分析可惜了。还有WebBrowser那种方式只是有辱蜘蛛程序。

同样的分析方式,进入店铺,抓取店铺里的数据地址:

https://shop106956264.taobao.com/i/asynSearch.htm?_ksTS=1462893454477_130&callback=jsonp131&mid=w-4253175477-0&wid=4253175477&path=/search.htm&search=y&spm=a1z10.3-c.w4002-4253175477.82.HMjruY&viewType=grid&pageNo=1

这里是店铺的商品信息了,页码参数:pageNo,切换页码可获取店铺全部商品信息

<a class=\"item-name J_TGoldData\" href=\"
//item.taobao.com/item.htm?id=36610888871\" target=\"_blank\" data-gold-url=\"/inshopse\" data-gold-data='{\"gokey\":\"at_bucketid=inshop_c_alg:6350;&srppage=1&scid=&lf_aclog=
5-36610888871-28-hotsell_desc-389369376&?src=shopsystem--11.227.2.38&sort=volume:des&sellerid=389369376&tab=all&ss_bucket=20&rank_src=inshop_pc_tb&buyernick=adobo&navigator=property&s=0&n=28&app=inshop&outfmt=json&bts=
%7B%22inshop_c_alg%22%3A%7B%22bucket%22%3A%7B%22name%22%3A%22ltr%22%2C%22id%22%3A6350%2C%22groups%22%3A%7B%22inshop_c%22%3A%22%22%2C%22qp4main%22%3A%22%22%2C%22qrs4inshop%22%3A%22%22%2C%22sp%22%3A%22rewrite_query%3Don%22%7D%7D%7D%7D&stats_click=&rn=
d58a095b794cb043cdf5a9630ff88d5e\", \"cna\": \"bfYLEF+bQ0MCAXLeROqBYCGK\",\"bc_type\":\"c\" }' > DIY佛牌链子
¥68.00

下面写了个示例程序(C#.NET over VS2013)

这里简单讲了下电商数据的一般获取方式,同理,天猫,JD等的获取方式也都大致相同,不要把抓取数据想的那么复杂,更不能只看表面的东西,蜘蛛程序和正常用户的获取数据路径有时候并不相同。所以写蜘蛛程序尽量避免站在普通用户的角度去获取想要的数据。

这里提供下示例程序的源码供大家参考下:

http://www.zimiclub.com/thread-9-1-1.html

相关推荐

或者这些Joplin插件也可以帮助你的笔记应用再一次强大

写在前面距离上次分享《搭建私有全平台多端同步笔记,群晖NAS自建JoplinServer服务》已过去一段时间,大家是否开始使用起来了呢?如果你和我一样已经使用过Joplin有一段时间了,那或许你也会...

Three.JS教程4 threejs中的辅助类

一、辅助类简介Three.js提供了一些辅助类(Helpers)以帮助我们更容易地调试、可视化场景中的元素。ArrowHelepr:创建箭头辅助器;AxisHelper:创建坐标轴辅助器;BoxH...

第2章 还记得点、线、面吗(二)(第二章还能敲钟吗)

glbgltf模型(webvrmodel)-gltf模型下载定制,glb模型下载定制,三维项目电商网站在线三维展示,usdz格式,vr模型网,网页VR模型下载,三维模型下载,webgl网页模型下载我...

如何检查Linux系统硬件信息?从CPU到显卡,一网打尽!

你可能会问:“我为什么要关心硬件信息?”答案很简单:硬件是Linux系统的根基,了解它可以帮你解决很多实际问题。比如:性能调优:知道CPU核心数和内存大小,才能更好地调整程序运行参数。故障排查:系统卡...

SpriteJS:图形库造轮子的那些事儿

从2017年到2020年,我花了大约4年的时间,从零到一,实现了一个可切换WebGL和Canvas2D渲染的,跨平台支持浏览器、SSR、小程序,基于DOM结构和支持响应式的,高...

平时积累的FPGA知识点(6)(fpga经典应用100例)

平时在FPGA群聊等积累的FPGA知识点,第六期:1万兆网接口,发三十万包,会出现掉几包的情况,为什么?原因:没做时钟约束,万兆网接口的实现,本质上都是高速serdes,用IP的话,IP会自带约束。...

芯片逻辑调度框架设计 都需要那些那些软件工具

设计芯片逻辑调度框架通常需要使用以下软件工具:1.逻辑设计工具:例如Vivado、Quartus、SynopsysDesignCompiler等,用于设计和实现逻辑电路。2.仿真工具:例如Mo...

ZYNQ与DSP之间EMIF16通信(正点原子领航者zynq之fpga开发指南v3)

本文主要介绍说明XQ6657Z35-EVM高速数据处理评估板ZYNQ与DSP之间EMIF16通信的功能、使用步骤以及各个例程的运行效果。[基于TIKeyStone架构C6000系列TMS320C6...

好课推荐:从零开始大战FPGA(从零开始的冒险4399)

从零开始大战FPGA引子:本课程为“从零开始大战FPGA”系列课程的基础篇。课程通俗易懂、逻辑性强、示例丰富,课程中尤其强调在设计过程中对“时序”和“逻辑”的把控,以及硬件描述语言与硬件电路相对应的“...

业界第一个真正意义上开源100 Gbps NIC Corundum介绍

来源:内容由「网络交换FPGA」编译自「FCCM2020」,谢谢。FCCM2020在5月4日开始线上举行,对外免费。我们有幸聆听了其中一个有关100G开源NIC的介绍,我们对该文章进行了翻译,并对其中...

高层次综合:解锁FPGA广阔应用的最后一块拼图

我们为什么需要高层次综合高层次综合(High-levelSynthesis)简称HLS,指的是将高层次语言描述的逻辑结构,自动转换成低抽象级语言描述的电路模型的过程。所谓的高层次语言,包括C、C++...

Xilinx文档编号及其内容索引(部分)

Xilinx文档的数量非常多。即使全职从事FPGA相关工作,没有几年时间不可能对器件特性、应用、注意事项等等有较为全面的了解。本文记录了我自使用Xilinx系列FPGA以来或精读、或翻阅、或查询过的文...

Xilinx Vivado联合Modelsim软件仿真

引言:Xilinx公司Vivado开发软件自带仿真工具,可以实现一般性能的FPGA软件仿真测试,其测试执行效率以及性能都不如第三方专用仿真软件Modelsim强。本文我们介绍下如何进行Vivado20...

体育动画直播是怎么做出来的?从数据到虚拟赛场的科技魔法!

你是否见过这样的比赛直播?没有真实球员,却能看梅西带球突破?足球比赛变成动画版,但数据100%真实?电竞比赛用虚拟形象直播,选手操作实时同步?这就是体育动画直播——一种融合实时数据、游戏引擎和AI的...

Dialogue between CPC and political parties of neighboring countries held in Beijing

BEIJING,May26(Xinhua)--TheCommunistPartyofChina(CPC)inDialoguewithPoliticalPartiesof...