六安沧州西安三亚宝鸡菏泽
投稿投诉
菏泽德阳
山西湖州
宝鸡上海
茂名内江
三亚信阳
长春北海
西安安徽
黄石烟台
沧州湛江
肇庆鹤壁
六安韶关
成都钦州

一看就明白的爬虫入门讲解基础理论篇下篇

  上篇我分享了爬虫入门中的我们的目的是什么、内容从何而来、了解网络请求这三部分的内容,这一篇我继续分享以下内容:
  一些常见的限制方式
  尝试解决问题的思路
  效率问题的取舍
  一、一些常见的限制方式
  上述都是讲的都是一些的基础的知识,现在我就列一些比较常见的限制方式,如何突破这些限制这些抓取数据:
  BasicAuth
  一般会有用户授权的限制,会在headers的Autheration字段里要求加入;
  Referer
  通常是在访问链接时,必须要带上Referer字段,服务器会进行验证,例如抓取京东的评论;
  UserAgent
  会要求真是的设备,如果不加会用编程语言包里自有UserAgent,可以被辨别出来;
  Cookie
  一般在用户登录或者某些操作后,服务端会在返回包中包含Cookie信息要求浏览器设置Cookie,没有Cookie会很容易被辨别出来是伪造请求;
  也有本地通过JS,根据服务端返回的某个信息进行处理生成的加密信息,设置在Cookie里面;
  Gzip
  请求headers里面带了gzip,返回有时候会是gzip压缩,需要解压;
  Javascript加密操作
  一般都是在请求的数据包内容里面会包含一些被javascript进行加密限制的信息,例如新浪微博会进行SHA1和RSA加密,之前是两次SHA1加密,然后发送的密码和用户名都会被加密;
  其他字段
  因为http的headers可以自定义地段,所以第三方可能会加入了一些自定义的字段名称或者字段值,这也是需要注意的。
  真实的请求过程中,其实不止上面某一种限制,可能是几种限制组合在一次,比如如果是类似RSA加密的话,可能先请求服务器得到Cookie,然后再带着Cookie去请求服务器拿到公钥,然后再用js进行加密,再发送数据到服务器。所以弄清楚这其中的原理,并且耐心分析很重要。
  二、尝试解决问题的思路
  首先大的地方,加入我们想抓取某个数据源,我们要知道大概有哪些路径可以获取到数据源,基本上无外乎三种:
  PC端网站;
  针对移动设备响应式设计的网站(也就是很多人说的H5,虽然不一定是H5);
  移动App;
  原则是能抓移动App的,最好抓移动App,如果有针对移动设备优化的网站,就抓针对移动设备优化的网站,最后考虑PC网站。因为移动App基本都是API很简单,而移动设备访问优化的网站一般来讲都是结构简单清晰的HTML,而PC网站自然是最复杂的了;
  针对PC端网站和移动网站的做法一样,分析思路可以一起讲,移动App单独分析。
  1网站类型的分析
  首先是网站类的,使用的工具就是Chrome,建议用Chrome的隐身模式,分析时不用频繁清楚cookie,直接关闭窗口就可以了。
  具体操作步骤如下:
  输入网址后,先不要回车确认,右键选择审查元素,然后点击网络,记得要勾上preservelog选项,因为如果出现上面提到过的重定向跳转,之前的请求全部都会被清掉,影响分析,尤其是重定向时还加上了Cookie;
  接下来观察网络请求列表,资源文件,例如css,图片基本都可以忽略,第一个请求肯定就是该链接的内容本身,所以查看源码,确认页面上需要抓取的内容是不是在HTML标签里面,很简单的方法,找到自己要找的内容,看到父节点,然后再看源代码里面该父节点里面有没有内容,如果没有,那么一定是异步请求,如果是非异步请求,直接抓该链接就可以了。
  分析异步请求,按照网络列表,略过资源文件,然后点击各个请求,观察是否在返回时包含想要的内容,有几个方法:
  内容比较有特点,例如人的属性信息,物品的价格,或者微博列表等内容,直接观察可以判断是不是该异步请求;
  知道异步加载的内容节点或者父节点的class或者id的名称,找到js代码,阅读代码得到异步请求;
  确认异步请求之后,就是要分析异步请求了,简单的,直接请求异步请求,能得到数据,但是有时候异步请求会有限制,所以现在分析限制从何而来。
  针对分析对请求的限制,思路是逆序方法:
  先找到最后一个得到内容的请求,然后观察headers,先看post数据或者url的某个参数是不是都是已知数据,或者有意义数据,如果发现不确定的先带上,只是更改某个关键字段,例如page,count看结果是不是会正常,如果不正常,比如多了个token,或者某个字段明显被加密,例如用户名密码,那么接下来就要看JS的代码,看到底是哪个函数进行了加密,一般会是原生js代码加密,那么看到代码,直接加密就行,如果是类似RSA加密,那么就要看公钥是从何而来,如果是请求得到的,那么就要往上分析请求,另外如果是发现请求headers里面有陌生字段,或者有Cookie也要往上看请求,Cookie在哪一步设置的;
  接下来找到刚刚那个请求未知来源的信息,例如Cookie或者某个加密需要的公钥等等,看看上面某个请求是不是已经包含,依次类推。
  2App的分析
  然后是App类的,使用的工具是Charles,手机和电脑在一个局域网内,先用Charles配置好端口,然后手机设置代理,ip为电脑的ip,端口为设置的端口,然后如果手机上请求网络内容时,Charles会显示相应地请求,那么就ok了,分析的大体逻辑基本一致,限制会相对少很多,但是也有几种情况需要注意:
  加密,App有时候也有一些加密的字段,这个时候,一般来讲都会进行反编译进行分析,找到对应的代码片段,逆推出加密方法;
  gzip压缩或者base64编码,base64编码的辨别度较高,有时候数据被gzip压缩了,不过Charles都是有自动解密的;
  https证书,有的https请求会验证证书,Charles提供了证书,可以在官网找到,手机访问,然后信任添加就可以。
  三、效率问题的取舍
  一般来讲在抓取大量数据,例如全网抓取京东的评论,微博所有人的信息,微博信息,关注关系等等,这种上十亿到百亿次设置千亿次的请求必须考虑效率,否者一天只有86400秒,那么一秒钟要抓100次,一天也才864w次请求,也需要100多天才能到达十亿级别的请求量。
  涉及到大规模的抓取,一定要有良好的爬虫设计,一般很多开源的爬虫框架也都是有限制的,因为中间涉及到很多其他的问题,例如数据结构,重复抓取过滤的问题,当然最重要的是要把带宽利用满,所以分布式抓取很重要,接下来我会有一篇专门讲分布式的爬虫设计,分布式最重要的就是中间消息通信,如果想要抓的越多越快,那么对中间的消息系统的吞吐量要求也越高。
  但是对于一些不太大规模的抓取就没要用分布式的一套,比较消耗时间,基本只要保证单机器的带宽能够利用满就没问题,所以做好并发就可以,另外对于数据结构也要有一定的控制,很多人写程序,内存越写越大,抓取越来越慢,可能存在的原因就包括,一个是用了内存存一些数据没有进行释放,第二个可能有一些hashset的判断,最后判断的效率越来越低,比如用bloomfilter替换就会优化很多。
  阅读上篇点击《一看就明白的爬虫入门讲解基础理论篇(上篇)》

表达思念家乡的散文故乡的思念,是一种亲情的感悟。下面是美文网小编精心为您整理的表达思念家乡的散文,希望您喜欢!表达思念家乡的散文一:记忆中的老家提及老家,在我儿时的记忆里,除了满眼是……那份爱是溶在血中的回忆父亲是一件很痛苦的事。哭着写完《我和我的父亲》后,念给我爱人听,电话那边的爱人哽咽了很久不出声,我问怎么了?他说,让我想到当初你那苦难的童年,想到他在时咱们不容易的日子,我……人的一生应该怎样度过人的一生应该怎样度过?当我给自己提出这个问题的时候,我已走近了五十岁的门槛,岁月的秋霜染白了我满头的乌发,老年斑悄悄的映在我的脸上;以肥胖为基础,以高血脂、高血压、高血糖为特征……女士时尚韩式扎发发型休闲扎发修颜减龄时尚靓丽的中短发在一侧低低的扎起一个盘发,将女生衬得气质迷人,头顶处打造出蓬度,拉长了上半部脸型比例,极好的修饰了脸型,美丽的五官在这款盘发下凸显出来,尽显迷人好看。高高……大脸女生适合的刘海发型波浪卷发瘦脸神器修颜短发时尚指数:这款卷发发型,非常俏皮可爱,厚重的齐刘海,减龄效果非常棒,再搭配上蓬松自然的的烫卷发,提升了亲和力指数。中黄色染发颜色,既增加了发型的时尚感,也衬……平价美妆蛋推荐用对工具再便宜的粉底也能画出贵妇妆受受狼专利金粉美妆蛋首先是性价比最高的受受狼金粉美妆蛋受受狼是国产品牌最开始吸引我的是它家化妆刷(后面也会有出场机会)但是它家的金蛋蛋也是无比给力……露阴癖暴露狂雷人心理露阴癖就是我们常说的暴露狂。将自己的私密之处暴露在大庭广众之下,不仅有伤风化,更加令不慎观看之人羞恼成恨。随着社会发展进步,人的社会压力逐渐增大,通过暴露来缓解压力、寻求畸形快……被动攻击型人格障碍被动攻击型人格障碍Psy525。cn我们在日常生活中总能遇到这样的老好人:他们对你的提议和行为,总是一连串地说着OK或没问题,可一旦做起你交代的事情来却又总在消极拖延或找……网上赚钱之利用宠物自媒体怎么赚钱平时我觉得养宠物的朋友还是很多的,但是怎么让宠物发挥最大的价值,让我们和宠物平常的生活中,为我们带来一些收入呢。其实很多人固定的思维里,你是这样认为的,宠物,就是玩物,并不会给……提高店铺销量排名的九大技巧2016年已经过去差不多一半了,今年相比于15年在淘宝这一块会更加的难做,淘宝上中大型商铺正在快速崛起并且占据了大部分的市场份额,还有许多死不完的小型商铺每日都在强流量强销售额……后创业故事他仅用年就让自己的身价超再过一个多月20后就要诞生了,20后出生后最早的一批80后也已经步入40周岁的行列,正式开始奔5,时间如梭让人忍不住感慨。人类是群居动物,从生下来开始就充满着竞争,对比无处不在……常用照片尺寸对照表(智慧小高图文)連環畫雜志手機阅览室照片尺寸的命名:照片的寸指的是英寸,1英寸2。54厘米;另外照片的尺寸国内外说法是不同的,例如:3。5X54X65X7……
寒衣节必须要到坟上烧纸吗寒衣节是中国一个比较传统的祭祀节日,每每该节日来临的时候人们都要进行祭祀、祭祖的活动,并且还要烧寒衣,正因为如此寒衣节必须要到坟上烧纸吗成了大家最为关注的问题,下面小编就和大家……小学四年级作文我做成了纸版画美文阅读网小编为大家整理了小学四年级作文我做成了纸版画,更多文章尽在美文阅读网。小学四年级作文我做成了纸版画嘿!朋友,告诉你我做成了纸版画!那到底是怎么做的呢?……我与足球的情缘足球是在我孤独寂寞时的伙伴,是我无聊伤心时的伙伴,是我开心时的伙伴。足球就是我的朋友,而我也是足球的朋友。我第一次接触这个朋友是在一年级暑假的时候,那天教练让我们各自挑选……战胜自我每个人都有自己害怕的事情,都有自己胆小的一面。我在班级里虽然有女侠之称,但是,当我一个人在家时,就会立刻变成胆小的小老鼠。那是一个寒冷的秋日,萧瑟的秋风卷着地上的落叶狂飞……我和孙悟空过一天早晨,门外的太阳还没升起到空中,就有人敲着我房间的门。我不情愿的爬下了床,我打开门之后,看见有一个穿着虎皮做成裙子的人,我还以为是演员,就问他:你是演员吗?孙悟空生气的说:什么……我是太阳城的小公民在遥远的天边,有一座美丽的太阳城,而我就荣幸的成为了太阳城的小公民。你如果来到太阳城,你一定会在一天之内爱上它,因为这里不论是电能还是水能,都被替换成了太阳能,所以,这里……我是妈妈的好帮手放暑假了,我每天除了按照暑期计划完成文化课以及体育运动外,就是每天帮妈妈做点力所能及的事。四年级以来学校每周都会要求我们自己动手烧一个菜,正是因为有了平时的积累,所以在暑……爸爸我想对您说爸爸,日子一天天过去了,我也一天天长大了,可是您为什么还要把我看成是小孩子呢?其实我真的已经长大了。每次您和妈妈去田里干活,到了下午三、四点钟,您就要回来做晚饭给我吃,有……你好再见初春午后,与三五好友一同漫步校园,沐浴阳光。夹杂着樱花与泥土香气的微风如河畔垂柳轻摆,拥吻着和煦的阳光,吟唱着易逝的春色。校园凉亭一侧的山楂在抽新芽,樱花与紫荆一唱一和,……秋天的图画夏哥哥恋恋不舍的挥挥手离开了我们,秋姑娘正迈着愉快的步伐高高兴兴的向我们走来,我们迎来了丰收迷人的秋天,秋天就像一幅美丽图画。秋天在森林里,红色的枫树叶像一枚枚邮票告诉大……爱的风景永住心间母爱是温柔的泉水,滋润我们的心田,母爱是一抹阳光,让我们感到温暖。记得去年,因为我天天起晚床,我买了一个闹钟。晚上,我放在我的床头,妈妈却把它拿到自己的房间,对我说:闹钟……我的心儿怦怦跳每个人都经历过心儿怦怦跳,而我那一次害怕的心儿怦怦跳,使我记忆深刻。有一天晚上,我在家里写作业,我写着写着笔就断了,我跟妈妈说:我去楼下的小店买一支笔。妈妈说:好。我打开……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网