一、背景

公司业务跟一个电商平台有合作,经常在这个平台上销售商品,并且单量不小,客服和财务都经常需要实时了解销售情况,因此经常需要对平台上的销售数据进行统计。
正常的操作模式是:由我们的客服人员或者运营人员登录后台,到商品库找到某个时间段内的商品,然后再去订单列表搜索这个商品所有的订单,并排除退款/取消的订单,最终得出有效订单数量进行统计。
如此一来,随着商品越来越多,统计的难度也会越来越大,并且统计一次花费的时间太多,而该平台又没有提供到我们想要的统计功能(还未完善),因此为了能节省统计人员的时间,释放这部分的劳动力,便着手研究php爬虫对这部分数据进行爬取。

二、爬虫

1、简单页面的爬取只需要模拟简单的访问即可,这类页面只需要关注页面结构,对页面结构进行解析。
2、如果解析的页面是由js/ajax渲染生成的,那么这种情况就会比上面所说的简单爬取要复杂一些。这个时候需要使用Chrome这类浏览器对network请求进行解析。分析页面与接口之间的http请求和生成数据的全过程,再根据具体的请求逻辑来实现对应的爬虫代码。
3、还有一些网站的数据爬取需要登录操作,比如这次抓取是在对方的商城管理系统进行抓取。如果不登陆后台,请求会一直被拒绝。因此对于这类情景,我们要进行模拟登陆。
4、还有一些业务场景更复杂的这边不涉及就不提了。比如有些爬取需要使用代理服务器,否则无法访问到目标url。也有很多情景当数据量剧增时需要考虑拓展性、IO或者多线程的时候,可能php就不太适用了。

三、框架

众所周知,php是世界上最好的语言,爬虫这种小事肯定是难不倒php的,php有自己的爬虫框架。比较知名的比如phpspider。一开始也有考虑使用phpspider,下载下来研究了一会,直接使用框架觉得自己没办法了解具体的过程,又不太想要去仔细查看框架的代码,所以还是决定自己写代码去爬取,不使用框架,这样也可以自己实现爬虫代码。如果有小伙伴想直接使用框架,看起来比较高大上的,可以使用phpspider,看起来还不错。下载地址百度一下就有了。

四、实现

1、先来看一下我们需要爬取的页面

这个页面是商品库的页面,其中总销量和可售库存是我们关心的

这个页面是具体的订单列表页面,我们进行统计的时候需要把退款/取消的情况给统计出来。平台并未提供导出表格和统计的功能,因此我们需要对这两个页面进行爬取,并运算统计出最终表单。

2、f12查看

在开发者工具下我们看到了这样的一条请求


点击进来,这个数据就是我们要的。由此我们可知,该页面的数据是由ajax请求数据渲染而来的。


这是请求时提交的数据,经过分析,得出了这样四个参数:

start:起始商品,设置为0即可
length:获取个数
page:当前页码
type:类型,设置1为我所需的物品类型

这些几个参数经过测试为必要参数,只需要传这4个参数即可获得我想要的数据

3、模拟登陆

在进行2步骤的时候,我们已经遇到登陆的问题,因此我们需要模拟登陆,否则无法获得数据

随便输入数字



获取到了参数和访问地址,因此我们构造一个Post请求携带正确的账号密码来访问这个地址

返回报文里面找到PHPSESSID参数(很重要!!),保存起来,后面的访问都需要设置这个参数,你的模拟登陆才算成功!!!


登陆完以后,还需要选择一个企业进行登陆,点击


发现他进行了一次跳转


分析这一次跳转,请求报文的cookie里面看到了一个很熟悉的参数,刚才我们登陆时候获得PHPSESSID。

4、编写代码获得第一个页面的数据

这是我们获取到的数据,返回的是json数据,我们只需要简单的处理即可


生成简单的报表。其他的数据获取方法同理,要生成文件表格只需要再引入PHPExcel就行,不做赘述

五、总结

1、首先我们需要先模拟登陆,登陆的时候我们使用post去访问地址,携带帐号和密码。
2、在返回的报文里面,我们需要对需要的参数进行保存。
3、请求的时候设置PHPSESSID,这样子后端才能默认我们已经登录。至于PHPSESSID是什么,我们可以认为PHPSESSID是用户的“身份证”,只有携带了这个“身份证”服务器才知道你是谁。
4、接着我们只需要分析具体所需的接口,分析参数,进行模拟访问,然后通过返回数据进行统计即可。

php爬虫模拟登陆爬取数据全过程相关推荐

  1. Python 爬虫实战,模拟登陆爬取数据

    Python 爬虫实战,模拟登陆爬取数据 从0记录爬取某网站上的资源连接: 模拟登陆 爬取数据 保存到本地 结果演示: 源网站展示: 爬到的本地文件展示: 环境准备: python环境安装 略 安装r ...

  2. python爬取新浪新闻首页_Python爬虫学习:微信、知乎、新浪等主流网站的模拟登陆爬取方法...

    微信.知乎.新浪等主流网站的模拟登陆爬取方法 摘要:微信.知乎.新浪等主流网站的模拟登陆爬取方法. 网络上有形形色色的网站,不同类型的网站爬虫策略不同,难易程度也不一样.从是否需要登陆这方面来说,一些 ...

  3. Python数据分析:爬虫从网页爬取数据需要几步?

    对于数据分析师来说,数据获取通常有两种方式,一种是直接从系统本地获取数据,另一种是爬取网页上的数据,爬虫从网页爬取数据需要几步?总结下来,Python爬取网页数据需要发起请求.获取响应内容.解析数据. ...

  4. python3爬虫模拟登录爬取教务系统成绩单(获取cookie操作)

    前言 今天来写写爬取教务系统的爬虫,此次的爬虫目的是爬取教务系统里面的成绩单,涉及到的库依旧是selenium,re,beautifulsoup,Options,今天多了个csv库用来处理爬取的数据, ...

  5. 使用Python和selenium的Chromedriver模拟登陆爬取网站信息(beautifulsoup)

    爬取的信息很多,所以需要设置断点,在程序重启时能继续爬取.并且能在断掉之后自动重启. 1.setting.py 对爬取的常量进行设置 """ 基本信息设置 "& ...

  6. 【k哥爬虫普法】爬取数据是否一定构成不正当竞争?

    我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K 哥特设了"K哥爬虫普法"专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识, ...

  7. php 模拟登陆爬取_PHP模拟登录并获取数据

    PHP模拟登录并获取数据 cURL 是一个功能强大的PHP库,使用PHP的cURL库可以简单和有效地抓取网页并采集内容,设置cookie完成模拟登录网页,curl提供了丰富的函数,开发者可以从PHP手 ...

  8. python爬虫库scrapy_使用Python爬虫Scrapy框架爬取数据

    时隔数月,国庆期间想做个假期旅游的分析展示. 1.通过Python爬取旅游网站上数据,并存储到数据库 2.通过Echart/FineReport/Superset等数据分析工具对数据展示 环境: Wi ...

  9. python模拟登录爬取数据_python 模拟登录爬取淘宝数据

    淘宝现在需要登录才能爬取搜索商品,首先在登录页面登录chrome F12 开发者模式抓包 登录请求 发现有一个post请求,这个就是登录的请求了,看下面的from data 登录信息 由from da ...

  10. 基于Python的HTTPS协议模拟登陆+爬取页面

    之前写的一直没成功,原因是用的不是HTTPS相关的函数.这次仔细研究了一下,有几个需要注意的点,一个是POST模拟登陆的时候,header中的cookie值,不同的网站应该会有不同的要求:另一个是GE ...

最新文章

  1. 每个人都应该有一个梦想
  2. C# WINFORM 打包数据库
  3. Android性能优化篇 [ 谷歌官方 ]
  4. 成功解决ModuleNotFoundError: No module named 'dataset'
  5. console 程序随系统启动及隐藏当前程序窗口
  6. day10T1改错记
  7. python编程教程交互式联系_Python Koans交互式教程
  8. 生活不可缺的46个搜索引擎
  9. 飞利浦 TASY 电子病历系统中存在严重漏洞,可暴露患者记录
  10. C Coding Standard
  11. Java 分页计算公式
  12. android模拟器录制视频教程,畅玩安卓模拟器怎么录制视频?畅玩模拟器录制游戏视频图文教程...
  13. Windows快捷键盘
  14. @ResponseBody详解
  15. NBUT 1451 Elise (暴力+并查集)
  16. 程序开发,也要匠心独运
  17. c语言while(*p *q),C语言经典例题和答案
  18. 共阳极管的代码_1.共阳极数码管是将发光二极管的_____连接在一起,字符5的共阳代码为_____,字符2的共阴代码为 _____。...
  19. html动画人物走路,CSS3动画中的steps(),制作人物行走动画
  20. 液晶LCD广告机是什么,主要用途有哪些。广告一体机的种类有哪些。

热门文章

  1. 美国g口无限流量服务器,不是所有的G口服务器都独享不限流量,美国SK洛杉矶G口除外...
  2. ibm x60 学习linux,IBM X60 T60系列安装系统时SATA设置问题
  3. 小管家进销存_管钱、管货、管顾客,“北漂”京东便利店主点赞掌柜管家
  4. 尚品宅配:最互联网的定制家居增长新势力,如何三招实现疫情期的逆势增长?
  5. linux 怎么在pe下安装驱动程序,【教程】再谈“万能驱动7在PE下安装驱动”功能...
  6. 配置catalina.out的日志格式
  7. 傅里叶级数 画初音 附底层代码
  8. 计算机中ms-dos什么意思,msdos是什么意思
  9. 计算机语言echo off什么意思,批处理文件的@echo off是什么意思?
  10. 完美解决 WinRAR 中文版 启动时的超恶心广告弹窗