文档章节

(一) 爬虫基础知识

acutesun
 acutesun
发布于 2017/07/20 21:42
字数 874
阅读 23
收藏 0
点赞 0
评论 0

爬虫的分类

网络爬虫按照系统结构和实现技术,大致可以分为4种。

  •     通用网络爬虫:如传统的通用搜索引擎百度,雅虎,谷歌
  •     聚焦网络爬虫:有目的的访问万维网上的网页和链接,获取所需要的信息
  •    增量式网络爬虫:对已经下载的网页更新或者只爬取新产生的网页。例如爬取招聘信息。对于已经爬取过的数据没有必要进行爬取,只爬取新的招聘信息。
  •    深层网络爬虫:web页面按存在方式分为表层网页和深层网页。表层网页就是传统搜索引擎可以索引的页面,可以通过超链接到达。深层网络则是需用户进行一些提交才能得到的web页面。例如用户登录或者注册后才能访问的页面。例如百度贴吧

爬虫的应用
     常见的BT网站,通过爬取互联网的DHT网络中分享的BT种子信息,提供对外搜索服务。例如http://www.cilisou.cn/
     一些云盘搜索网站,通过爬取用户共享出来的云盘文件数据,对文件数据进行分类划分,从而提供对外搜索服务。例如http://www.pansou.com/

爬虫基本结构

xpath
    如果XPath的开头是一个斜线(/)代表这是绝对路径。如果开头是两个斜线(//)表示文件中所有符合模式的元素都会被选出来,即使是处于树中不同的层级也会被选出来
    
    article                选取所有article元素的所有子节点
    /article               选取根元素article
    article/a              选取所有属于article的子元素a
    //div                  选取div元素(无论出现在文档任何位置)
    article//div           选取article元素的所有后代元素div.
    //@class               选取所有名为class的属性
    /article/div[1]        选取article元素的第一个div子元素
    /article/div[last()]   选取article元素的最后一个div子元素
    //div[@lang]           选取所有拥有lang属性的div元素
    //div[@lang="eng"]     选取所有lang属性值为eng的div元素
    /div/*                 选取div的所有子元素
    //*                    选取所有元素
    //div[@*]              选取所有带属性的div元素
    /div/a|//div/p         选取所有div元素的a,p元素
    //span|//rl            选取所有的span和ul元素
    article/div/p|//span    选取所有属于articleyuans的div元素的p元素和span元素
   
   
   扩展: scrapy-djangoitem scrapy的插件, 处理scrapy的item


   
css选择器


    *                           选择所有的节点
    #container                  选择id为container的节点
    .container                  选择所有class包含container的节点
    li a                        选择所有li下的所有a节点
    ul + p                      选择ul后面的第一个p元素
    div#container > ul          选择id为container的div的第一个ul子节点
    ul ~ p                      选择ul相邻的所有p元素
    a[title]                    选择所有有title属性的a元素
    a[href='http://job.com'     选择所有href属性值'为'job.com的a元素
    a[href*='job']              选择所有href属性值'包含'job的a元素
    a[href^='http']             选择所有href属性值以http开头的a元素
    a[href$='.jpg']             选择所有href 属性值以.jpg结尾的a元素
    input[type=radio]:checked   选择选中的radio元素
    div:not(#container)         选择所有id非container的div属性
    li:nth-child(3)             选择第三个li元素
    tr:nth-child(2n)            第偶数个tr

 

© 著作权归作者所有

共有 人打赏支持
acutesun
粉丝 0
博文 65
码字总数 83152
作品 0
程序员
5个python爬虫教材,让小白也有爬虫可写,含视频教程!

认识爬虫   网络爬虫,如果互联网是一张蜘蛛网,网络爬虫既是一个在此网上爬行的蜘蛛,爬了多少路程即获取到多少数据。 python写爬虫的优势   其实以上功能很多语言和工具都能做,但是用...

柯西带你学编程
06/12
0
0
Python数据分析学习路径图(120天Get新技能)

Python是一种面向对象、直译式计算机程序设计语言,由Guido van Rossum于1989年底发明。由于他简单、易学、免费开源、可移植性、可扩展性等特点,Python又被称之为胶水语言。下图为主要程序语...

数据007
2016/01/22
0
0
聊聊python爬虫开发入门的必备技能

关于爬虫,相信有不少同学都接触过。譬如你通过百度搜索“慕课网”,然后跳转到慕课网的首页,这里你访问的百度首页就用到了爬虫技术,它把慕课网的首页源代码爬取到了搜索引擎服务器中,进行...

NavCat
07/02
0
0
python-59: 基础篇完

经历了这漫长的时间,我们的基础篇终于讲完了,来说几个问题 1. 基础篇主要讲了什么 基础篇我们主要是使用urllib,urllib2和cookielib这几个库来讲解爬虫的几个实例,为什么要选择这几个库呢?...

达岭凹老大
2015/12/15
96
0
爬虫系列的总结

图片来自 unsplash 时光荏苒,四个月时间如流沙般从手心中流逝。这四个月自己算是收获颇多。因为在张哥的影响下,自己渐渐喜欢上写作。自己将所学的爬虫知识、学习心得以及如何学习分享出来。...

猴哥Yuri
2017/10/27
0
0
Python爬虫学习系列教程

一、Python入门 1. Python爬虫入门一之综述 2. Python爬虫入门二之爬虫基础了解 3. Python爬虫入门三之Urllib库的基本使用 4. Python爬虫入门四之Urllib库的高级用法 5. Python爬虫入门五之U...

xiejunbo
2016/02/16
521
0
scrapy初探之实现爬取小说

一、前言 上文说明了scrapy框架的基础知识,本篇实现了爬取第九中文网的免费小说。 二、scrapy实例创建 1、创建项目 2、定义要爬取的字段(item.py)

元婴期
06/04
0
0
python-02:学习路线

随时更新的学习路线 1. python基础知识 麦子学院的几个短视频 python 爬虫基础 2. 以python爬虫作为入手点深入学习 1. 爬虫基础知识,最简单的爬虫程序,理解最简单的爬虫程序 2. 丑事百科实...

达岭凹老大
2015/11/23
270
0
一个月入门Python爬虫,快速获取大规模数据

数据是创造和决策的原材料,高质量的数据都价值不菲。而利用爬虫,我们可以获取大量的价值数据,经分析可以发挥巨大的价值,比如: 豆瓣、知乎:爬取优质答案,筛选出各话题下热门内容,探索...

Python开发者
04/25
0
0
Python爬虫学习资料书籍推荐

近年来,随着网络不断的发展,网络信息量也变得更多更大,基于传统搜索引擎的局限性,网络爬虫应运而生,在这里,我们向各位读者们推荐几本关于学习Python爬虫的书籍。 根据小编的经验,小编...

小懒人23
2016/05/18
791
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Android LogUtil 日志优化 调试的时候打印 点击跳转

打印日志的时候,可以点击跳转 LogUtil.java public class LogUtil { private static boolean IS_DEBUG = BuildConfig.DEBUG; public static void i(String tag, String message) {......

Jay_kyzg
11分钟前
0
0
人工智能你必须掌握的32个算法(二)归并排序算法

归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子...

木头释然
14分钟前
0
0
第十四章NFS服务搭建与配置

14.1 NFS介绍 NFS介绍 NFS是Network File System的缩写;这个文件系统是基于网路层面,通过网络层面实现数据同步 NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netap...

Linux学习笔记
37分钟前
1
0
流利阅读笔记27-20180716待学习

生了娃照样能打,两位母亲温网会师 Lala 2018-07-16 1.今日导读 现今在生儿育女后回归事业的母亲们已经非常多见,但是很少有人想到,以高强度运动与竞争激烈为特色的竞技体育项目也会有 work...

aibinxiao
38分钟前
4
0
Guava 源码分析(Cache 原理【二阶段】)

前言 在上文「Guava 源码分析(Cache 原理)」中分析了 Guava Cache 的相关原理。 文末提到了回收机制、移除时间通知等内容,许多朋友也挺感兴趣,这次就这两个内容再来分析分析。 在开始之前...

crossoverJie
50分钟前
0
0
OSChina 周一乱弹 —— 如果是你喜欢的女同学找你借钱

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @guanglun :分享Michael Learns To Rock的单曲《Fairy Tale》 《Fairy Tale》- Michael Learns To Rock 手机党少年们想听歌,请使劲儿戳(这...

小小编辑
今天
574
19
NNS域名系统之域名竞拍

0x00 前言 其实在官方文档中已经对域名竞拍的过程有详细的描述,感兴趣的可以移步http://doc.neons.name/zh_CN/latest/nns_protocol.html#id30 此处查阅。 我这里主要对轻钱包开发中会用到的...

暖冰
今天
0
0
32.filter表案例 nat表应用 (iptables)

10.15 iptables filter表案例 10.16/10.17/10.18 iptables nat表应用 10.15 iptables filter表案例: ~1. 写一个具体的iptables小案例,需求是把80端口、22端口、21 端口放行。但是,22端口我...

王鑫linux
今天
0
0
shell中的函数&shell中的数组&告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析

影夜Linux
今天
0
0
Linux网络基础、Linux防火墙

Linux网络基础 ip addr 命令 :查看网口信息 ifconfig命令:查看网口信息,要比ip addr更明了一些 centos 7默认没安装ifconfig命令,可以使用yum install -y net-tools命令来安装。 ifconfig...

李超小牛子
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部