去年使用了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. arm linux gdb调试工具,gdb+gdbserver调试arm-linux程序
  2. 深度解析工业软件:研究框架(140页)
  3. java将clob类型文件写到磁盘_Java对Oracle中Clob类型数据的读取和写入
  4. java 异常 抛 效率_一文带你理清Java异常体系,提高开发效率
  5. C#easyui combotree 设置节点折叠
  6. net以execl做数据库_[原创]Net实现Excel导入导出到数据库(附源码)
  7. 二叉搜索时与双向链表python_JZ26-二叉搜索树与双向链表
  8. php分区表,【MYSQL】分区表
  9. 计算机会考补考时间安排,2019-2020学年第二学期初补考考试安排(实时更新)
  10. 这种简历咋找工作?(运营)
  11. 秒杀系统架构分析与实战(14155字,26图)
  12. Java设计模式——策略模式
  13. Linux内核移植介绍
  14. Python | 计算给定数字的平方(3种不同方式)
  15. Python 入门学习路线
  16. linux连接小米随身wifi密码忘记了,小米路由器无线密码(wifi密码)忘记了怎么办?...
  17. npoi2.0版本word中插入图片
  18. 《Unity 3.x游戏开发实例》——1.2节风靡全球的Unity
  19. amd显卡驱动目录linux,安装ATI Linux显卡驱动
  20. 排队论(Queuing theory)简介

热门文章

  1. Netty : java.io.IOException: Connection reset by peer
  2. 【ES】分布式调度系统之 Elastic-Job-Lite
  3. 90-70-010-源码-CUBE查询-源码
  4. 【Kafka】kafka消费组查看lag
  5. 【正则表达式】正则匹配注释
  6. Spring源码:StopWatch 计时秒表
  7. mac下IDEA远程调试hive-2.2.0
  8. Java如何实现后端分页
  9. 软件测试的目标及组织测试过程
  10. leetcode题解48-旋转图像