爬虫角度看第三方12306抢票服务

爬虫

针对网络上信息的抓取 过滤 排名 利用,
取网页数据->存储数据->内容处理->提供检索
这种提供结果不具有特殊性,不能针对不同背景领域的人提供不同的搜索结果,只能提供信息的查询。

君子协议robots.txt

User-agent: *
Disallow: /wp-admin/
Sitemap: http://www.xxx.us/sitemap.xml

反爬虫策略

1、IP限制
看某一IP请求次数是否超阈值

2、UA限制
某些爬虫模拟百度家等蜘蛛,可以看其IP是否百度家的

3、验证码
其更换时间点或者更换时间段,可以设置超过多少次出验证码

4、数据下放策略
数据异步获取,js加密库生成动态token,再加密库混淆,当然有可能会被其使用内置浏览器引擎的爬虫软件来处理。。。

爬虫策略

减少请求次数
寻找app web等其他接口
代理IP、多线程、分布式多任务爬取想要的数据

HTTP协议

基于TCP/IP通信协议来传递数据的应用层协议,简单、灵活、无连接、无状态

URI 统一资源标识符传输数据和建立链接。
URL 统一资源定位符,特殊类型的URI,包含了勇于查找某个资源的足够信息。

协议部分 域名部分 端口部分 虚拟目录部分 文件名部分 喵部分 参数部分

请求消息:
第一部分 请求行,用来说明请求类型,要访问的资源以及所使用的HTTP版本
第二部分 请求头部,紧接着请求行之后的一部分,用来说明服务器要使用的附加信息
第三部分 空行
第四部分 请求数据主体

响应消息:
第一部分 状态行,由HTTP协议版本号、状态码、状态消息组成。
第二部分 消息报头,用来说明客户端要使用的一些附加信息。
第三部分 空行,消息报头后面的空行是必须的。
第四部分 响应正文,服务器返回给客户端的文本信息。

Http的响应代码:

PHP的请求

三种请求方式

curl
wget
file_get_contents

curl 参数详解

分析12306业务调用流程

初始化:
https://kyfw.12306.cn/otn/login/init

验证码:
https://kyfw.12306.cn/passport/captcha/captcha-image

打码验证:
https://kyfw.12306.cn/passport/captcha/captcha-check

提交登录:
https://kyfw.12306.cn/passport/web/login

https://kyfw.12306.cn/passport/web/auth/uamtk

https://kyfw.12306.cn/otn/uamauthclient

获取个人信息:
https://kyfw.12306.cn/otn/modifyUser/initQueryUserInfo

0条留言