爬虫角度看第三方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
文章来源:
Author:司马他
link:https://www.congcong.us/post/crawl_and_12306_ticket.html