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 ...
随机推荐
- 【Web探索之旅】第三部分第二课:IP地址和域名
内容简介 1.第三部分第二课:IP地址和域名 2.第三部分第三课预告:协议 第三部分第二课:IP地址和域名 上一课我们说了在Web之中,全球各地有无数台机器,有些充当客户机,有些作为服务器. 那么这些 ...
- Convert View To Bitmap
public static Bitmap convertViewToBitmap(View view) { view.destroyDrawingCache(); view.measure(View. ...
- c# winform 中的 工具栏自动隐藏 splitter用法 带源码
c# winform 中的 工具栏自动隐藏 splitter用法 带源码 代码下载地址 http://download.csdn.net/detail/simadi/7649313
- A星寻路lua实现
他遇见了自己的主动性的需要找到它的项目的方式,我决定开始学习A明星,为A星我没有深究,它只能说是勉强获得需求.在此和大家分享一下.共同进步. A星有一个公式 f(x) = g(x) + h(x) ,这 ...
- Centos安装后,没有ifconfig工具
yum install net-tools yum不能用时,就下载rpm来安装 hostname -f, --fqdn, --long Display the FQDN (Fully Qualifie ...
- Delete和Truncate的区别
原文:Delete和Truncate的区别 一般对于没有用的数据,都会经行删除,而删除通常使用的是DELETE和TRUNCATE命令.对于有条件地删除,基本上就会使用DELETE,当然还是没有绝对,用 ...
- UVA 10529 Dumb Bones 可能性dp 需求预期
主题链接:点击打开链接 题意: 要在一条直线上摆多米诺骨牌. 输入n, l, r 要摆n张排,每次摆下去向左倒的概率是l, 向右倒的概率是r 能够採取最优策略.即能够中间放一段.然后左右两边放一段等, ...
- 注册表 ControlSet001、ControlSet002以及CurrentControlSet
首先说说ControlSet几组控制之间的关系. 注册表HKLM\system注意 注册表项包含windows启动的三个控件组(额外还可能存在一个备份控件组).在初始状态下.它们各自是Con ...
- PL/SQL Developer下设置“长SQL自己主动换行”
***********************************************声明*************************************************** ...
- Qt原始资源形象问题后删除
这些天Qt请项目超市收银系统,作为练一练手,无论如何,亦休闲亦无关,做几乎同样的.旨在取代以前的资源图片, 是什么改变了,码里面的路径都改了.还是编译只是去,总是提示这样一个错误. <s ...