黑马程序员C语言教程:带你浅出python爬虫框架scrapy二)_黑马程序员python教程

2020-02-28 其他范文 下载本文

黑马程序员C语言教程:带你浅出python爬虫框架scrapy二)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“黑马程序员python教程”。

带你深入浅出python爬虫框架scrapy(二)之前我们学习了scrapy的安装,接下来我们先简单的介绍一下使用。

一、创建一个新的Scrapy项目

scrapy startproject itcast 结构如下

│ scrapy.cfg │

└─itcast │ items.py

│ pipelines.py

│ settings.py

│ __init__.py

└─spiders __init__.py

这些文件主要是:

      scrapy.cfg: 项目配置文件

itcast/: 项目python模块, 呆会代码将从这里导入 itcast/items.py: 项目items文件 itcast/pipelines.py: 项目管道文件 itcast/settings.py: 项目配置文件 itcast/spiders: 放置spider的目录

二、定义提取的Item 它通过创建一个scrapy.item.Item类来声明,定义它的属性为scrpy.item.Field对象,就像是一个对象关系映射(ORM).我们通过将需要的item模型化,来控制从dmoz.org获得的站点数据,比如我们要获得站点的名字,url和网站描述,我们定义这三种属性的域。要做到这点,我们编辑在itcast目录下的items.py文件,我们的Item类将会是这样

from scrapy.item import Item, Field cla DmozItem(Item): title = Field()link = Field()desc = Field()

三、写一个Spider用来爬行站点,并提取Items

Spider是用户编写的类,用于从一个域(或域组)中抓取信息。

他们定义了用于下载的URL的初步列表,如何跟踪链接,以及如何来解析这些网页的内容用于提取items。要建立一个Spider,你必须为scrapy.spider.BaseSpider创建一个子类,并确定三个主要的、强制的属性:

  name:爬虫的识别名,它必须是唯一的,在不同的爬虫中你必须定义不同的名字.start_urls:爬虫开始爬的一个URL列表。爬虫从这里开始抓取数据,所以,第一次下载的数据将会从这些URLS开始。其他子URL将会从这些起始URL中继承性生成。

 parse():爬虫的方法,调用时候传入从每一个URL传回的Response对象作为参数,response将会是parse方法的唯一的一个参数, 这个方法负责解析返回的数据、匹配抓取的数据(解析为item)并跟踪更多的URL。from scrapy.spider import BaseSpider

cla DmozSpider(BaseSpider): name = “dmoz”

allowed_domains = [“dmoz.org”] start_urls = [ “http:///head/title: 选择HTML文档元素下面的标签。/html/head/title/text(): 选择前面提到的元素下面的文本内容 //td: 选择所有元素

//div[@cla=”mine“]: 选择所有包含 cla=”mine“ 属性的div 标签元素

这只是几个使用XPath的简单例子,但是实际上XPath非常强大。

为了方便使用XPaths,Scrapy提供XPathSelector 类,有两种口味可以选择,HtmlXPathSelector(HTML数据解析)和XmlXPathSelector(XML数据解析)。为了使用他们你必须通过一个 Response 对象

对他们进行实例化操作。你会发现Selector对象展示了文档的节点结构。因此,第一个实例化的selector必与根节点或者是整个目录有关。Selectors 有三种方法

   path():返回selectors列表, 每一个select表示一个xpath参数表达式选择的节点.extract():返回一个unicode字符串,该字符串为XPath选择器返回的数据 re():返回unicode字符串列表,字符串作为参数由正则表达式提取出来

现在我们尝试从网页中提取数据

from scrapy.spider import BaseSpider from scrapy.selector import HtmlXPathSelector

cla DmozSpider(BaseSpider): name = ”dmoz“

allowed_domains = [”dmoz.org“] start_urls = [ ”http://XPathSelector(response)sites = hxs.path('//fieldset/ul/li')#sites = hxs.path('//ul/li')for site in sites: title = site.path('a/text()').extract()link = site.path('a/@href').extract()desc = site.path('text()').extract()#print title, link, desc print title, link

保存抓取的数据

保存信息的最简单的方法是通过以下命令来保存数据: scrapy crawl dmoz-o items.json-t json 简单的使用就介绍这了,后面会继续为大家说明高级用法。

黑马程序员c语言教程:SQL函数

大小写控制函数 大小写控制函数 字符控制函数数字函数ROUND 函数TRUNC 函数MOD 函数......

黑马程序员c语言教程:多表查询

1 笛卡尔积 部门表 笛卡尔积产生结果: 行数 两个表相乘列数: 行数相加 原因条件等值连接select ****from tab1, tab2where tab1.a = tab2.a1 select count(e.ename)2 from......

黑马程序员c语言教程:Oracle指令

--sql structured query language --DML--Data Manipulation Language--数据操作语言 query information (SELECT), add new rows (INSERT), modify existing rows (UPDATE)......

黑马程序员c语言教程:Oracle概念

一、选择行1.简单的SELECT 语句SELECT 字段名1 [AS] '字段名1 解释' FROM table; 2.处理NULL NVL函数可把NULL转换成其它类型的符号编程技巧: NVL函数在多条件模糊查询的......

黑马程序员c语言教程:Oracle指令

------------------------- --order by的用法--员工信息按照姓名正序排列select * from emp order by ename asc; --员工信息按照倒叙排列select * from emp order by ename......

《黑马程序员C语言教程:带你浅出python爬虫框架scrapy二).docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
黑马程序员C语言教程:带你浅出python爬虫框架scrapy二)
点击下载文档
相关专题 黑马程序员python教程 爬虫 带你 黑马 黑马程序员python教程 爬虫 带你 黑马
[其他范文]相关推荐
[其他范文]热门文章
下载全文