文档章节

(一) 爬虫基础知识

acutesun
 acutesun
发布于 2017/07/20 21:42
字数 874
阅读 27
收藏 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
博文 71
码字总数 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

没有更多内容

加载失败,请刷新页面

加载更多

window下安装maven

1.下载软件包: 2.解压到当前的安装路径: D:\Maven3.5.3 3.添加环境变量: 新建一个名为:MAVEN_HOME 填写解压路径:D:\Maven3.5.3 打开path,添加:%MAVEN_HOME%\bin 确定即可。 4.验证环境...

狼王黄师傅
7分钟前
0
0
聊聊flink的FsCheckpointStorage

序 本文主要研究一下flink的FsCheckpointStorage CheckpointStorage flink-runtime_2.11-1.7.0-sources.jar!/org/apache/flink/runtime/state/CheckpointStorage.java /** * CheckpointStor......

go4it
29分钟前
2
0
makefile 常用函数

Linux 环境下的程序员如果不会使用GNU make来构建和管理自己的工程,应该不能算是一个合格的专业程序员,至少不能称得上是 Unix程序员。今天我们来学习下makefile的常用函数。 《GNU make》h...

科陆李明
今天
17
0
Android 报错 Could not find com.android.tools.build:aapt2:3.2.1-4818971.

报错信息: Could not find com.android.tools.build:aapt2:3.2.1-4818971.Searched in the following locations: file:/C:/Users/96110/AppData/Local/Android/Sdk/extras/m2reposito......

lanyu96
今天
9
0
我的Linux系统九阴真经

我的Linux系统九阴真经 在今天,互联网的迅猛发展,科技技术也日新月异,各种编程技术也如雨后春笋一样,冒出尖来了。各种创业公司也百花齐放百家争鸣,特别是针对服务行业,新型互联网服务行...

linuxCool
今天
34
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部