去年使用了Python的BS4+Requests爬取了这个数据,但是不慎rm -rf / 了,这次使用PHP重新爬取一次。

本文仅供学习交流,不要干坏事哦~

首先打开招生考试信息网的查询页面:

1535268634258459.jpg

然后输入自己的考生号:

1535268650611929.jpg

查询结果是这个样子的。右键审查元素:

1535268776881945.jpg

可以看到使用了iframe直接get后端服务器,返回结果是html。接着开始研究这个iframe。

直接访问:

1535268882750670.jpg

行不通,网页做了防盗链,一般这样的防盗链都是检测header中的refer值,判断来路页面是不是自己域下的,我们使用PHP的Curl携带refer信息来模拟访问下:

//$url和Referer相关敏感信息已删除

$ch = curl_init($url);

curl_setopt ($ch, CURLOPT_HTTPHEADER, array ('Referer:xxxxx') );

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$output = curl_exec($ch);

curl_close($ch);

echo $output;

直接在Windows的cmd里面跑一下:

resize,m_fill,w_1558,h_904

成了!!

接着想想如何解析这一坨HTML。

因为不会正则表达式,所以用了一种麻烦而且没有技术含量的方法:先删除空格、\t、\n,然后删掉无用的html。

首先删掉无用空格换行符:

function kill1($str) {

$str=preg_replace('# #', '', $str);

$str=str_replace(" ","",$str);

$str=str_replace("\n","",$str);

$str=str_replace("\r","",$str);

$str=str_replace("\t","",$str);

$str=str_replace("\0","",$str);

}

调用这个函数,打印下看看:

1535269451569638.jpg

接着删掉无用的html就行了。这里有个小问题:怎么把姓名、学校、专业、录取批次给分离开呢?

观察html,这几项中间都隔着html标签,只要把html标签不全删,留下一个符号作为分隔符,使用explode就行了。

继续完善我们的kill函数:

function kill1($str) {

$str=preg_replace('# #', '', $str);

$str=str_replace(" ","",$str);

$str=str_replace("\n","",$str);

$str=str_replace("\r","",$str);

$str=str_replace("\t","",$str);

$str=str_replace("\0","",$str);

$kill_s  =[

'

内蒙古普通高校招生录取结果查询系统您查询的录取结果为

php获取td数据,记一次用PHP做爬虫获取全市高考报考数据相关推荐

  1. 网络爬虫入门:网络爬虫的目的,企业获取数据的方式,可以用于做爬虫的程序语言,爬虫爬取数据的步骤

    目录 爬取数据的目的: 1.获取大量数据,用于做数据分析 2.公司项目的测试数据,公司业务所需数据 企业获取数据的方式 1.公司自有数据 2.第三方数据平台购买(数据堂,贵阳大数据交易所) 3.爬虫爬 ...

  2. 记第一天使用node做爬虫——爬取猫眼电影票房总榜以及指定电影的豆瓣评论前200条

    首先,我是一个做前端的应届生,今天朋友想让我帮忙爬取猫眼电影票房总榜的数据,但是我之前一点都没接触过爬虫,但我还是说:okk,我试试: 然后试试就逝世,各种坑接踵而来: 提前声明:这篇文章暂时只是获取 ...

  3. python获取网页数据判断并提交_【python爬虫网页结构分析】判断数据是在html的静态网页还是在动态网页;找对URL;豆瓣;QQ音乐...

    这里的内容如果包含你要的信息,则数据储存在html 比如豆瓣新片榜,我们可以在preview中找到我们想要的榜单内容,则数据储存在HTML 豆瓣新片榜.png 再点[Headers]General 一 ...

  4. Python爬虫:该如何学习数据爬虫

    现行环境下 大数据与人工智能的重要依托还是庞大的数据和分析采集 类似于淘宝 京东 百度 腾讯级别的企业 能够通过数据可观的用户群体获取需要的数据.而一般企业可能就没有这种通过产品获取数据的能力和条件. ...

  5. 关于Excel操作编写的一个软件设计构思案例[连载] --如何打开Excel文件,获取需要列的数据显示到表格内做修改

    如何打开Excel文件,获取需要列的数据显示到表格内做修改? DataSet 读取表格数据 = new DataSet(); Thread 读取, 更新; int 计数 = 0, 定位 = 0, 原条 ...

  6. Python:照片墙设计,将爬虫获取的照片布局成爱心形状

    python照片墙设计 代码规划: 将爬虫爬取的图片进行处理,减小尺寸 将处理好的图片进行照片墙设计 图片处理ImageSolve.py:批量处理 导入库:PIL:图像处理:glob from PIL ...

  7. python爬虫——对爬到的数据进行清洗的一些姿势(5)

    做爬虫,当然就要用数据.想拿数据进行分析,首先清洗数据.这个清洗数据包括清除无用数据列和维度,删除相同数据,对数据进行勘误之类的. 从各大不同新闻网站可以爬到重复新闻...这个可以有.之前为了对爬到的 ...

  8. 通过jquery获取td下的input标签的值,并且改变onclick的参数值

    一.背景 这几篇博客貌似我都是记在笔记本上超过一个月了,手动捂脸!我自己看着都有点陌生,行吧,就当重温一下当时碰到的问题了. 背景是要获取table标签里面的td下的input的对象,并修改它的onc ...

  9. python获取id标签对应数据_Python--Scrapy爬虫获取简书作者ID的全部文章列表数据

    最近Python大火,为了跟上时代,试着自学了下.Scrapy是一个高级的Python爬虫框架,它不仅包含了爬虫的特性,还可以方便的将爬虫数据保存到csv.json等文件中. 今天我们就试着用Scra ...

最新文章

  1. C++ 排序函数 sort(),qsort()的用法 附加.str()用法
  2. mysql安装连接测试c_Ubuntu 12.04下安装mysql并用C程序测试连接
  3. java的svn插件maver_项目版本管理工具---MAVENSVN
  4. 可还行?这款手机首获德国红点设计大奖
  5. JavaScript 类式继承与原型继承
  6. P4213 【模板】杜教筛(杜教筛)题解
  7. virtual studio 2017 配置vistual assist激活
  8. Android获取应用签名
  9. 微信apk微信直接用手机默认浏览器打开 IOS跳转App Store(苹果商店)打开
  10. selenium中文文档_基于selenium的大麦网演唱会抢票程序
  11. VM虚拟机下如何和Windows主机共享文件夹
  12. null underfined NaN 判断
  13. CTO说出了我的成长慢的原因,价值10万:“在VUCA时代,必须掌握的12种永久技能。”...
  14. Python爬虫:爬取知乎上的视频,并把下载链接保存到md文件中
  15. 安装esxi6.X系统过程
  16. Centos 环境配置总结(持续更新)
  17. 探秘前端 CRDT 实时协作库 Yjs 工程实现
  18. ArcGIS 平均最近邻分析、多距离空间聚类分析与密度空间制图
  19. (ICASSP 19)AUTOMATIC GRAMMAR AUGMENTATION FOR ROBUST VOICE COMMAND RECOGNITION
  20. 订单交期迟滞,销售回应慢,怎么解决客户问题?

热门文章

  1. 【Elasticsearch】Elasticsearch 集群 运维 高性能 架构设计 高负载
  2. 【kafka】Consumer is not subscribed to any topics
  3. 【Clickhouse】Clickhouse 数据字典
  4. 【clickhouse】clickhouse NO DELAY, INTO OUTFILE, SETTINGS, ON, FORMAT, Dot, SYNC, token
  5. 95-235-070-源码-task-OneInputStreamTask
  6. 20-100-010-安装-Flink集群安装 flink-1.4.0-bin-hadoop27-scala_2.11
  7. 【zookeeper】zookeeper的命令行操作zkCli.sh
  8. 两个 Integer 数值之间不建议使用 “==” 进行比较
  9. 学习云计算有什么用?企业怎么才能“上云”?
  10. java .z文件_java 压缩文件