寻找爬虫入口 
1 、本次任务的入口 这个爬虫的更好的入口就是我们平常使用的搜索引擎。搜索引擎虽然有很多种,但是其实都是在干一件事,收录网页,处理,然后提供搜索服务。在平时使用的过程中,我们通常都是直接输入了关键词就直接搜索了,但是其实还有很多的搜索技巧, 比如对于这个任务来说,只要我们这样搜索,就可以得到我们想要的数据了。

site:zybang.com

现在我们在百度,谷歌, 搜狗, 360,必应里都分别试一下:

从上面的图中可以发现返回的数据量都在百万甚至是千万级别。

所以把这些数据作为这个任务的入口,显然是更好的。至于说应对反爬虫的措施,那就考验个人的基本功了。

2、其他的入口 (1) 移动端入口 通过网站的移动端入口进行获取数据,可以更好更快速的获取数据。

    寻找移动端入口的最简单的方式就是用打开谷歌浏览器的开发者模式以后,点击下面的手机样子的东西,然后在刷新一下就可以了。

这种方法也不是万能的,有的时候我们可以把网址发到我们的手机上,然后手机浏览器打开,看一下在手机上面显示的格式是否与电脑上的不一样,如果不一样的话,就可以再把手机浏览器的网址复制一下发到电脑上了。

 (2)网站地图
    网站地图是指可方便网站管理员通知搜索引擎他们网站上有哪些可供抓取的网页, 所以通过这些网站地图可以更高效更方便的获取一些作为下一级入口的网址。

 (3)修改网址中的数值
   首先申明,这个技巧不是万能的。

   这个技巧主要是通过对网址中的某些字段的数值来从一次请求中最大限度的获取所需的数据,减少请求数,也就减少了被网站封禁的风险, 也就可以提高爬虫的效率。下面以一个例子为例:

    当爬取QQ音乐的某一个歌手的全部音乐数据时,抓包获得的格式如下:

https://xxxxxxxxx&singermid=xxxx&order=listen&begin={begin}&num={num}&songstatus=1

返回的数据包如下:

其中的一些字段值被我以xxx代替了,请注意这里的num字段,通常一个歌手的歌比较多时,数据都是通过下一页展示出来的,所以这里的begin就应该是每一页第一条的对应的值,而num则是这个页面有多少条数据。通常,我们可以一页一页的获取数据, QQ音乐的默认值是30。那么我们是不是非得至少请求4次才可以获得完整数据呢?

  当然不是,其实这个时候,我们可以自己试一下改变网址中的一些数值时,返回的结果是否会发送变化。在这里,我们就改变num与begin的值,其中设置num就是某一个歌手所有的歌曲数量的值,begin为0,这个时候再重新请求修改之后的网址,就可以得到下面的数据:

从上面可以看到,返回了96条数据。

   这样,我们可以通过2次请求获取到所有的数据了。第一个请求获取total数目,然后再修改网址重新请求,这样就可以获得所有的数据了。

   类似的字段还有pagesize。

总结 上面的这些寻找爬虫入口的小技巧可以使我们事半功倍,有的时候可以以最少的代价获取到数据。

芝麻HTTP:如何寻找爬虫入口的更多相关文章

  1. 芝麻HTTP:Python爬虫实战之抓取淘宝MM照片

    本篇目标 1.抓取淘宝MM的姓名,头像,年龄 2.抓取每一个MM的资料简介以及写真图片 3.把每一个MM的写真图片按照文件夹保存到本地 4.熟悉文件保存的过程 1.URL的格式 在这里我们用到的URL ...

  2. 自顶向下学搜索引擎——北大天网搜索引擎TSE分析及完全注释[1]寻找搜索引擎入口

    转自:http://blog.csdn.net/jrckkyy/article/category/402818 由于百度博客http://hi.baidu.com/jrckkyy发表文章字数有限,以后 ...

  3. 芝麻HTTP: Python爬虫利器之Requests库的用法

    前言 之前我们用了 urllib 库,这个作为入门的工具还是不错的,对了解一些爬虫的基本理念,掌握爬虫爬取的流程有所帮助.入门之后,我们就需要学习一些更加高级的内容和工具来方便我们的爬取.那么这一节来 ...

  4. 芝麻HTTP:Python爬虫进阶之Scrapy框架安装配置

    初级的爬虫我们利用urllib和urllib2库以及正则表达式就可以完成了,不过还有更加强大的工具,爬虫框架Scrapy,这安装过程也是煞费苦心哪,在此整理如下. Windows 平台: 我的系统是 ...

  5. 芝麻软件: Python爬虫进阶之爬虫框架概述

    综述 爬虫入门之后,我们有两条路可以走. 一个是继续深入学习,以及关于设计模式的一些知识,强化Python相关知识,自己动手造轮子,继续为自己的爬虫增加分布式,多线程等功能扩展.另一条路便是学习一些优 ...

  6. 芝麻HTTP:Python爬虫实战之抓取爱问知识人问题并保存至数据库

    本次为大家带来的是抓取爱问知识人的问题并将问题和答案保存到数据库的方法,涉及的内容包括: Urllib的用法及异常处理 Beautiful Soup的简单应用 MySQLdb的基础用法 正则表达式的简 ...

  7. 芝麻HTTP:Python爬虫实战之爬取糗事百科段子

    首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 友情提示 糗事百科在前一段时间进行了改版,导致之前的代码没法用了,会导致无法输出和CPU占用过高的 ...

  8. 芝麻HTTP: Python爬虫利器之PyQuery的用法

    前言 你是否觉得 XPath 的用法多少有点晦涩难记呢? 你是否觉得 BeautifulSoup 的语法多少有些悭吝难懂呢? 你是否甚至还在苦苦研究正则表达式却因为少些了一个点而抓狂呢? 你是否已经有 ...

  9. 芝麻HTTP:Python爬虫利器之Xpath语法与lxml库的用法

    安装 ​pip install lxml 利用 pip 安装即可 XPath语法 XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML 文档中对元素和属性进行遍历.XPat ...

随机推荐

  1. 好用的开源库(二)——uCrop 图片裁剪

    最近想要实现图片裁剪的功能,在Github上找到了这个uCrop,star的人挺多的,便是决定入坑,结果长达一个小时的看资料+摸索,终于是在项目中实现了图片裁剪的功能,今天便是来介绍一下uCrop的使 ...

  2. HashMap实现分析

    HashMap最基本的实现思想如下图所示,使用数组加链表的组合形式来完成数据的存储. Entry在数组中的位置是由key的hashcode决定的. 向一个数组长度为16,负载因子为0.75的HashM ...

  3. BZOJ 3566: [SHOI2014]概率充电器 [树形DP 概率]

    3566: [SHOI2014]概率充电器 题意:一棵树,每个点\(q[i]\)的概率直接充电,每条边\(p[i]\)的概率导电,电可以沿边传递使其他点间接充电.求进入充电状态的点期望个数 糖教题解传 ...

  4. BZOJ 3450: Tyvj1952 Easy [DP 概率]

    传送门 题意:$ox?$组成的序列,$?$等概率为$o\ or\ x$,得分为连续的$o$的长度的平方和,求期望得分 一开始没想出来,原因在于不知道如何记录长度 其实我们同时求得分和长度的期望就好了 ...

  5. jQuery源码研究——解决命名冲突

    在项目中难免不去使用多个插件,如此一来这些插件就有可能出现一样的名称,当出现同名变量时后一个将会覆盖上一个,这样的话我们就无法同时使用多个插件了. 当遇到这种情况我们可以手动去修改插件源码把它的名字改 ...

  6. User Parameters(用户参数)

      User Parameters(用户参数),这个是整个zabbix的重点 Zabbix有很多内置的itemkey,但是这些key都是由Zabbix定义好的比较通用的监控项的实现, 如果我们自己想实 ...

  7. MySQL开启binlog并且保存7天有效数据

    开启binlog日志(在[mysqld]下修改或添加如下配置): server-id=1 log-bin=mysql-bin binlog_format=MIXED binlog日志模式 Mysql复 ...

  8. 使用netstat检测及监测网络连接

    在讲监测检测之前,先给大家在普及一个知识,那就是TCP连接的状态,TCP进行3次握手,其过程有很多状态,不同的连接状态,都有想对应的状态码,看下面列表: LISTEN:侦听来自远方的TCP端口的连接请 ...

  9. Python 运算符,你了解多少?

    新年新气象,文档更新继续~ 一.什么是运算符? 之前我们有定义过变量,变量是用来存储数据的,存储的数据是为了运算,运算就会使用到运算符 举个简单的例子 4 +5 = 9 . 例子中,4 和 5 被称为 ...

  10. static关键字的使用总结

    1.对于static关键字的使用的时候对于修饰变量的时候,它相当于一个全局变量: 2.对于static修饰一个函数的时候他是在类被加载的时候首先会被类加载,并且只能加载一次,并且这个方法可以不需要通过 ...