crawler_网络爬虫之数据分析_httpwatcher
所谓爬虫,首先要通过各种手段爬取到想要站点的数据。 web2.0之后,各种网络站点类型越来越多,早期的站点多为静态页面【html 、htm】,后来逐步加入 jsp。asp,等交互性强的页面。再后来随着js的兴起,也处于站点的美观和易于维护,越来越多的ajax异步请求方式数据站点。[不扯犊子了 ,马上上示例]
参与工作时间不是很长,但工作期间一直做不同的爬虫项目。对常见的页面数据获取,有一些简单的认识。 接触到的页面分为三类。
A 静态页面(数据在源码中直接可以获取到)
B数据在基源码中没有,携带请求数据请求,在浏览器解析过程中,封装出含数据的源码
C数据在浏览器解析后的源码中 没有,是通过页面的js函数,调用请求的js数据,显示的。
分别举个例子以示说明:
A ,这一类最简单,例如百度首页 ,现在想获取它的页面显示的链接信息

查看源码

不难发现页面中的链接信息在源码中都有体现,直接写正则
<a\s[^>]*?href\s*=[^\\]\s*['"]?([^'"\s>*?]*)[^>]*>[\s\S]*?(.*?)[</a>].+?
在RegexBuddy 3 工具中

通过去group 1 [链接] group[Aname] 取得想要的数据,再通过队列循环排除依次取出百度链到的所有站点。
B
像企业类型信息查询网站 http://qyxy.baic.gov.cn/zhcx/zhcxAction!list.dhtml?op=cx

想要获取通过程序输入企业名称 而查询出有关注册信息
不难发现当人工输入企业名称【2】 是 url【1】中的地址栏并没有变化,但是 【3】的响应结果却会随着我们查询的词不同而响应出不通的结果。
这就是上述的基页面不变,但是源码在请求后解析加载显示的不一样 。
对于这种情况 我们需要借助工具分析在我们在点击查询的操作时进行了那些与服务器的交互,

通过httpwatcher
通过分析不难发现,在点击查询的动作时,http请求 通过post方式发送了一个请求数据到给服务器端 zhcxModel.ent_name 百度。这样通过程序建立http链接时,我们把请求数据推送给服务器
然后再接收数据源码,这是源码中就含有查询出来的信息了,再通过A的方式,把想要的信息通过正则取出来。
C 例如土豆的用户信息页面 http://www.tudou.com/home/tui/u57045481t2.html【随便拿了一个页面,若牵涉个人隐私,请联系我,我会立马更改】
想抓取土豆的粉丝数,关注数,及粉丝的详细信息

这个页面查看源码 看不到保护焊有粉丝数 1327【1】等 及 粉丝的名称、链接等【2】信息
通过httpwatcher 重新请求页面 ,记录与服务器交互的数据,
不难发现
粉丝数 信息 在请求时 发送的这个链接
http://www.tudou.com/my/tui/userInfo.html?uid=57045481&callback=jQuery16408569448299658144_1366125895716&_=1366125895774 中体现,再看蓝色圈中的数据即为该用户的id信息,在初始URL中也含有。这样就不难总结出 用户的关注人信息 数据 通过拼接 http://www.tudou.com/my/tui/userInfo.html?uid= + 用户ID +&callback=jQuery 即可获得。
再看
【2】粉丝人信息

与上述方法差不多 ,探寻到发送的js请求,获取json数据 。
像翻页类型的数据,1327个服务器端没有一次请求把所有数据加载过来,

观察粉丝人数的js请求地址 ,有两个参数pageSize currentPage 。pageSize 用来显示每一页显示多少个,currentPage用来显示当前页,页面中有总页数111,同时在刚探寻的js中也有总页数的信息,这样就很容易的通过变换currentPage 的值来依次通过A的方式去到用户的头像 ,姓名,等信息了。
不早了,明儿还得干活儿 ,今天就先到这儿了,这个目前接触到的一些类型数据分析,当然还有更复杂些的,接触面有限,等后续发现和学习我会陆续补充上的 。
欢迎指正和交流学习
爬虫技术交流_crawler QQ群:167047843
crawler_网络爬虫之数据分析_httpwatcher的更多相关文章
- crawler_网络爬虫中编码的正确处理与乱码的解决策略
转载: http://hi.baidu.com/erliang20088/item/9156132bdaeae8949c63d134 最近一个月一直在对nutch1.6版进行中等层次的二次开发,本来是 ...
- Python网络爬虫实战:根据天猫胸罩销售数据分析中国女性胸部大小分布
本文实现一个非常有趣的项目,这个项目是关于胸罩销售数据分析的.是网络爬虫和数据分析的综合应用项目.本项目会从天猫抓取胸罩销售数据,并将这些数据保存到SQLite数据库中,然后对数据进行清洗,最后通过S ...
- 03.Python网络爬虫第一弹《Python网络爬虫相关基础概念》
爬虫介绍 引入 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的 ...
- Python网络爬虫第一弹《Python网络爬虫相关基础概念》
爬虫介绍 引入 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的 ...
- python 网络爬虫介绍
一.网络爬虫相关概念 网络爬虫介绍 我们都知道,当前我们所处的时代是大数据的时代,在大数据时代,要进行数据分析,首先要有数据源,而学习爬虫,可以让我们获取更多的数据源,并且这些数据源可以按我们的目的进 ...
- Python爬虫《Python网络爬虫相关基础概念》
引入 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的应用还是从 ...
- 03,Python网络爬虫第一弹《Python网络爬虫相关基础概念》
爬虫介绍 引入 为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的应用还是从就业上. 我们都知道,当前我们所处的时代 ...
- 《Python网络爬虫相关基础概念》
爬虫介绍 引入 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的 ...
- Python 基础教程 —— 网络爬虫入门篇
前言 Python 是一种解释型.面向对象.动态数据类型的高级程序设计语言,它由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年.自面世以后,Pytho ...
随机推荐
- JAVA编程思想(2) - 操作符(一)
"在最底层,Java中的数据是通过操作符来操作的." 1. 使用Java操作符 -操作符接受一个或者多个參数,并生成一个新值,參数的形式与普通的方法调用不用,但效果是同样的.加号和 ...
- java提高篇(三)-----理解java的三大特性之多态
面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...
- C日常语言实践中小(四)——勇者斗恶龙
勇者斗恶龙 愿你的国有n龙的头,你想聘请骑士杀死它(全部的头). 村里有m个骑士能够雇佣,一个能力值为x的骑士能够砍掉恶龙一个致敬不超过x的头,且须要支付x个金币. 怎样雇佣骑士才干砍掉恶龙的全部头, ...
- .NET 并行(多核)编程系列之七 共享数据问题和解决概述
原文:.NET 并行(多核)编程系列之七 共享数据问题和解决概述 .NET 并行(多核)编程系列之七 共享数据问题和解决概述 前言:之前的文章介绍了了并行编程的一些基础的知识,从本篇开始,将会讲述并行 ...
- 【Android进阶】SlidingMenu实现侧滑栏效果的实现
public class MainActivity extends Activity { @Override protected void onCreate(final Bundle savedIns ...
- 设计Kafka的High Level Consumer
原文:https://cwiki.apache.org/confluence/display/KAFKA/Consumer+Group+Example 为什么使用High Level Consumer ...
- Java中的逆变与协变(转)
看下面一段代码 Number num = new Integer(1); ArrayList<Number> list = new ArrayList<Integer>(); ...
- 自己的自定义单元格(IOS)
定义自己的单位格有三种方法 - 代码 - xib - storyboard(推荐) 操作方法故事板 1.在TableView财产Prototype Cells至1.莫感觉1: 2.须要创建自己定义的单 ...
- 左右TS分析流
字节.在TS流里能够填入非常多类型的数据.如视频.音频.自己定义信息等.他的包的结构为,包头为4个字节,负载为184个字节(这184个字节不一定都是有效数据.有一些可能为填充数据). 工作形式: 由于 ...
- 阿里巴巴2014研发project师实习生面试经历
java研发project师的初面是在上周三进行的,终于结果到了晚上才出,而没有通过的则是一结束网上就更新了状态.之后阿里通知这周三,也就是今天进行二面. 凑巧的是今早被舍友吵醒,中午那个困啊,但没时 ...