电商数据采集的10个经典方法

news2024/12/27 11:24:58

电商数据采集的网页抓取数据、淘宝、天猫、京东等平台的电商数据抓取,网页爬虫、采集网站数据、网页数据采集软件、python爬虫、HTM网页提取、APP数据抓包、APP数据采集、一站式网站采集技术、BI数据的数据分析、数据标注等成为大数据发展中的热门技术关键词。那么电商数据采集的方法有哪些呢?我给大家分享一下,我爬虫的个人经验,我们在采集类似电商数据网站的时候会遇到什么技术问题,然后再根据这些问题给大家分享采集方案。

一、写爬虫采集网站之前:

为什么经常听到有些网站的域名被劫持、服务器被heikegongji、数据库被盗等大家平时登录一个网站,记的都是类似www.tmall.com这样的网址。这叫做域名(domain name)。输入域名后是需要先通过DNS服务器来解析识别这个域名对应的服务器IP地址,每家公司网站的程序和数据都是放在自己服务器上的(如阿里云服务器或者自己购买的服务器),每个服务器有一个IP地址,只要知道这个IP地址,就可以访问到这个网站(特殊情况除外,比如设置了禁止IP访问权限)。

​(1)域名解析过程:

输入www.tmall.com这网址(域名)怎么就可以访问到对应的网站呢?那是因为如果需要让您域名可以正常使用,就必须先把域名和您网站的服务器IP地址绑定在一起,以后用户在浏览器只要输入这个域名就等于输入您这个服务器IP地址了,这个绑定的过程叫做域名解析,互联网有13台DNS根服务器,专门来做域名解析,其中10台在美国(包括一台主根服务器),另外3台根服务器分别在英国、瑞典、日本,而中国一台都没有,那么,大家的担忧随之而来:很多朋友问我,如果美国的根服务器不为中国提供服务了,中国是不是就从网络上消失了?网站还能访问吗?其实域名服务器只是解析域作用而已,如果没有域名我们可以用IP访问网站,只是用IP访问记起来不方便而已,域名也就一个别名容易记住的简称的作用而已,例如103.235.46.39。这叫做IP地址,即Internet Protocol Address,互联网协议地址。比如输入 pingwww.baidu.com可以查到百度这个网址解析绑定到的是哪个服务器的IP地址。

图片

从上面可以知道百度的IP地址为:103.235.46.39。当您知道这个网址的服务器IP地址时候,您在浏览器输入网址和您在浏览器输入这个IP地址 都是可以访问到这个网站的(除非有些禁止IP访问),通过这个手段,我们后面在做网站数据采集爬虫的时就可以直接请求IP地址去采集数据了,可以绕过网址直捣皇宫了,就算网址更换了,但是服务器是不变的,我们一样找到它网站老巢,采集它的数据。

(2)域名劫持爬虫技术:域名劫持是互联网gongji的一种方式,通过gongji域名解析服务器(DNS),实现劫持,因为如果要访问www.baidu.com 就必先经过DNS域名解析服务器来解析这个网址对应那台服务器IP地址。如果在这个过程有heike想攻您网站,比如heike想gongji百度,就可以在这个DNS解析域名环节做手脚,比如我想让所有用户打开www.baidu.com 直接访问的是我的广告网站,而不是百度自己服务器里面的网站网页。那很简单,那只要在DNS 解析百度这个网址的时候把对应的百度服务器IP地址 修改解析到您自己的网站服务器IP地址去,那么所有人打开这个www.tmall.com网址就实际就是打开您的网站了。这个过程就叫域名劫持,这种技术已经不是爬虫技术是高级的heike技术了。

(3)钓鱼网站爬虫技术:通过域名劫持技术,很多人heike去劫持银行网站、支付宝网站、充值交易的网站等,比如他们先做一个和银行一模一样的网站,功能和长相和银行的一模一样,这个网站我们称呼钓鱼网站,用户打开银行网址时候,其实已经被劫持走了,真正访问的是他们提供的钓鱼网站,但是因为网址是一样的,网站长相也是一样的,用户压根不会识别出来,等您输入银行账号密码后,您的银行卡的钱估计就自动被转走了,因为已经知道您的账号密码了。对技术感兴趣朋友欢迎交流我扣扣:2779571288

二、网站数据采集的10个经典方法:

我们平时说的采集网站数据、数据抓取等,其实不是真正的采集数据,在我们的职业里这个最多算是正则表达式,网页源代码解析而已,谈不上爬虫采集技术难度,因为这种抓取主要是采集浏览器打开可以看到的数据,这个数据叫做html页面数据,比如您打开:www.jintancn.com这个网址,然后键盘按F12 ,可以直接看到这个网址的所有数据和源代码,这个网站主要是提供一些爬虫技术服务和定制,里面有些免费新工商数据,如果需要采集它数据,你可以写个正则匹配规则html标签,进行截取我们需要的字段信息即可。下面给大家总结一下采集类似这种工商、天眼、商标、专利、亚马逊、淘宝、app等普遍网站常用的几个方法,掌握这些访问几乎解决了90%的数据采集问题了。

方法一:用python的request方法

用python的request方法,直接原生态代码,python感觉是为了爬虫和大数据而生的,我平时做的网络分布式爬虫、图像识别、AI模型都是用python,因为python有很多现存的库直接可以调用,比如您需要做个简单爬虫,比如我想采集百度 几行代码就可以搞定了,核心代码如下:

import requests  #引用reques库

respnotallow=request.get(‘https://www.tianyancha.com/’)#用get模拟请求

print(response.text)  #已经采集出来了,也许您会觉好神奇!

方法二、用selenium模拟浏览器

selenium是一个专门采集反爬很厉害的网站经常使用的工具,它主要是可以模拟浏览器去打开访问您需要采集的目标网站了,比如您需要采集天眼查或者企查查或者是淘宝、58、京东等各种商业的网站,那么这种网站服务端做了反爬技术了,如果您还是用python的request.get方法就容易被识别,被封IP。这个时候如果您对数据采集速度要求不太高,比如您一天只是采集几万条数据而已,那么这个工具是非常适合的。我当时在处理商标网时候也是用selenum,后面改用JS逆向了,如果您需要采集几百万几千万怎么办呢?下面的方法就可以用上了。

方法三、用scrapy进行分布式高速采集

Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。scrapy 特点是异步高效分布式爬虫架构,可以开多进程 多线程池进行批量分布式采集。比如您想采集1000万的数据,您就可以多设置几个结点和线程。Scrapy也有缺点的,它基于 twisted 框架,运行中的 exception 是不会干掉 reactor(反应器),并且异步框架出错后 是不会停掉其他任务的,数据出错后难以察觉。我2019年在做企业知识图谱建立的时候就是用这个框架,因为要完成1.8亿的全量工商企业数据采集和建立关系,维度比天眼还要多,主要是时候更新要求比天眼快。对技术感兴趣朋友欢迎交流我扣扣:2779571288

方法四:用Crawley

Crawley也是python开发出的爬虫框架,该框架致力于改变人们从互联网中提取数据的方式。它是基于Eventlet构建的高速网络爬虫框架、可以将爬取的数据导入为Json、XML格式。支持非关系数据库、支持使用Cookie登录或访问那些只有登录才可以访问的网页。

方法五:用PySpider

相对于Scrapy框架而言,PySpider框架是一支新秀。它采用Python语言编写,分布式架构,支持多种数据库后端,强大的WebUI支持脚本编辑器、任务监视器、项目管理器以及结果查看器。PPySpider的特点是ython脚本控制,可以用任何你喜欢的html解析包,Web界面编写调试脚本、起停脚本、监控执行状态、查看活动历史,并且支持RabbitMQ、Beanstalk、Redis和Kombu作为消息队列。用它做个两个外贸网站采集的项目,感觉还不错。

方法六:用Aiohttp

Aiohttp 是纯粹的异步框架,同时支持 HTTP 客户端和 HTTP 服务端,可以快速实现异步爬虫。坑比其他框架少。并且 aiohttp 解决了requests 的一个痛点,aiohttp 可以轻松实现自动转码,对于中文编码就很方便了。这个做异步爬虫很不错,我当时对几个淘宝网站异步检测商城里面的商品和价格变化后处理时用过一段时间。

方法七:asks

Python 自带一个异步的标准库 asyncio,但是这个库很多人觉得不好用,甚至是 Flask 库的作者公开抱怨自己花了好长时间才理解这玩意,于是就有好事者撇开它造了两个库叫做 curio 和 trio,而这里的 ask 则是封装了 curio 和 trio 的一个 http 请求库。

方法八:vibora

号称是现在最快的异步请求框架,跑分是最快的。写爬虫、写服务器响应都可以用,用过1个月后 就很少用了。

方法九:Pyppeteer

Pyppeteer 是异步无头浏览器(Headless Chrome),从跑分来看比 Selenium + webdriver 快,使用方式是最接近于浏览器的自身的设计接口的。它本身是来自 Google 维护的 puppeteer。我经常使用它来提高selenium采集的一些反爬比较厉害的网站 比如裁判文书网,这种网站反爬识别很厉害。

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

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

相关文章

什么是零拷贝

普通拷贝流程 在实际应用中,如果我们需要把磁盘中的某个文件内容发送到远程服务器上,那么它必须要经过几个拷贝的过程,。从磁盘中读取目标文件内容拷贝到内核缓冲区,CPU 控制器再把内核缓冲区的数据赋值到用户空间的缓冲区中&…

全志R128外设模块配置——ADC按键配置方法

ADC 按键配置方法 FreeRTOS平台上使用的按键为ADC-KEY,采用的ADC模块为GPADC。 按键功能驱动的实现是通过ADC分压,使每个按键检测的电压值不同,从而实现区分不同的按键。按下或者弹起中断之后,通过中断触发,主动检测…

电子技术基础之一(电容和电感)

Electronic Techonolgy 1、电容和电感1.1、电容(Capacitor)1.1.1、滤波功能1.1.2、储能功能 1.2、电感(Inductor)1.2.1、楞次定律1.2.2、储能作用 1、电容和电感 先讲一个概念,电流分为直流电和交流电,其中直流电再分为稳定直流电和脉动直流电。 直流电…

如何使用VSCode将iPad Pro转化为功能强大的开发工具?

文章目录 前言1. 本地环境配置2. 内网穿透2.1 安装cpolar内网穿透(支持一键自动安装脚本)2.2 创建HTTP隧道 3. 测试远程访问4. 配置固定二级子域名4.1 保留二级子域名4.2 配置二级子域名 5. 测试使用固定二级子域名远程访问6. iPad通过软件远程vscode6.1 创建TCP隧道 7. ipad远…

SpringBoot (3) Profiles,外部化配置,自定义starter

目录 1 Profiles 1.1 "组件"环境隔离 1.1.1 标识环境 1.1.2 激活环境 1.2 "配置"环境隔离 1.2.1 添加"副配置文件" 1.2.2 激活环境 2 外部化配置 2.1 配置优先级 2.2 快速部署 3 自定义starter 3.1 基本抽取 3.1.1 导yaml提示包 3…

mac录屏怎么录?看这里,告别繁琐操作!

屏幕录制是mac用户在日常生活中经常需要使用到的功能,无论是记录游戏精彩瞬间、分享在线会议、制作教学视频还是保存重要资料,屏幕录制都可以帮助我们更便捷地实现这些需求。但是很多用户并不知道mac录屏怎么录。在本文中,我们将介绍两种mac录…

TT119电源芯片用什么代替?

根据你提供的信息,Tt119电源芯片的替代选项可以是AH8652芯片。 AH8652芯片采用了SOT23-3封装,与Tt119芯片相同。同时,你提到外围元件也是一模一样的,因此不需要进行任何更改。 AH8652芯片的输入电压范围为45V至265V,…

用好快捷键事半功倍!如何在Excel中快速取消隐藏的行

工作时,我们需要经常取消隐藏Excel中的行。要知道行是否被隐藏,请仔细检查行号。如果缺少某些数字,则意味着行被隐藏。这样做很容易,而且您可以用不同的快捷方式取消隐藏Excel中的行。 在本文中,我将讨论如何在各种情况下取消隐藏Excel中的行的两种快捷方式。这些快捷方式…

【JavaEE】Java的多线程编程基础知识 -- 多线程篇(2)

Java多线程编程基础知识 一、多线程的创建二、Thread类常用的方法和API2.1 Thread 的几个常见的属性2.2 start 启动一个线程2.3 终止一个线程2.4 等待一个线程-join()2.5 线程休眠函数 -sleep() 三、线程状态3.1 观察所有线程的状态3.2 线程状态和线程转移的意义 四、线程安全&…

pytorch 训练可视化

pytorch 训练可视化 1.from torch.utils.tensorboard 1.from torch.utils.tensorboard from torch.utils.tensorboard import SummaryWriter在最新版本的pytorch中官方提供了tensorboard的api。以下是官方教程的链接 https://pytorch.org/tutorials/intermediate/tensorboard…

docker企业单位私有镜像仓库 Harbor 搭建

docker私有镜像仓库 Harbor 搭建 背景说明使用环境安装部署docker安装docker-compose安装 安装 HarborHarbor UI管理docker 登录docker推送镜像和拉取镜像docker推送镜像docker 拉取镜像 背景说明 为了方便管理docker容器镜像,通常使用各大云平台提供的镜像服务&am…

内裤洗衣机到底值不值得买?内衣洗衣机便宜好用的牌子

有很多姐妹上班累爆了,回家洗澡换下的衣物还要区分开来,将内衣裤用来自己手洗,还要专门使用杀菌洗衣液才能安心,而且随着科技的进步,现在市面上拥有了一款专门为女生设计的内衣洗衣机,可以解决日常手洗内衣…

英语 chatGPT分析句子与验证正确性 翻译

有时候我想说的时候,又不确定说的对不对。chatGPT知道。 “as well as” 和 “as good as” 都是英语中常见的短语,但它们有不同的用法和含义。 “As Well As”(以及): “As well as” 是一个连接词短语,用来连接两…

最优闭回路问题

目录 一、欧拉回路与道路 1、欧拉回路与道路 2、欧拉图存在的条件 二、中国邮路问题 1、中国邮路问题 2、中国邮路问题求解 3、有奇点的G的中国邮路问题等价问题 例1 【问题分析】 (1)先求图1中任意两点之间的距离矩阵d1如表1(Floyd算…

软件测试肖sir__python之ui自动化定位方法(2)

Selenium中元素定位方法 一、定位方法 要实现UI自动化,就必须学会定位web页面元素,Selenium核心 webdriver模块提供了9种定位元素方法: 定位方式 提供方法 id定位 find_element_by_id() name定位 find_element_by_name() class定位 find_elem…

Three.js + Tensorflow.js 构建实时人脸点云

本文重点介绍使用 Three.js 和 Tensorflow.js 实现实时人脸网格点云所需的步骤。 它假设你之前了解异步 javascript 和 Three.js 基础知识,因此不会涵盖基础知识。 该项目的源代码可以在此 Git 存储库中找到。 在阅读本文时查看该代码将会很有帮助,因为…

nginx配置download模块

nginx.conf配置 location /download{alias /usr/local/webapp/download/;sendfile on;autoindex on; # 开启目录文件列表autoindex_exact_size on; # 显示出文件的确切大小,单位是bytesautoindex_localtime on; # 显示的文件时间为文件的服务器时间charset utf…

hexo发生错误 Error: Spawn failed

错误描述 仓库中有东西,运行如下命令后报错 hexo d报错提示: 原因分析: 看别人的博客是用git进行push或hexo d的时候改变了一些.deploy_git文件下的内容,这个.deploy_git的内容对于hexo来说可能是系统文件,这里挖坑 解决办法 一个个的…

如何在不恢复出厂设置的情况下解锁 Android 手机密码?

如何在不恢复出厂设置的情况下解锁 Android 手机密码? 当您忘记 Android 手机的密码时,可能会有压力,尤其是当您不想恢复出厂设置并删除所有数据时。但是,有一些方法可以在不诉诸如此激烈的步骤的情况下解锁手机。我们将在这篇文…

平板有必要买触控笔吗?推荐的ipad手写笔

iPad之所以能吸引这么多人,主要是因为它的功能出色。用来画画、做笔记,也是一种不错的体验。但如果只是用来看电视和打游戏的话,那就真的有点大材小用了。如果你不需要昂贵的苹果电容笔,也不需要用来专业的绘图,那你可…