关于 scrapy 基础操作
2017-09-26 本文已影响10人
Vissioon
-
pip 换源
国外的源实在是太慢了在终端进入目录:cd~/.pip (如果没有.pip 文件夹,那么就要自己创建)
编辑 pip.conf 文件 (同上)写入阿里云镜像
[global] index-url = http://mirrors.aliyun.com/pypi/simple/ [install] trusted-host=mirrors.aliyun.com
或者写入豆瓣镜像
[global] index-url = http://pypi.douban.com/simple [install] trusted-host=pypi.douban.com
-
pip 安装 scrapy
pip install scrapy
-
spider 模板
import scrapy class Spider(scrapy.spider.Spider): name = "spider" #唯一标识,启动spider时即指定该名称 allowed_domains = ["www.baidu.com"] start_urls = [ "http://www.baidu.com ] def parse(self, response): with open(filename, 'wb') as f: f.write(response.body)
-
spider 启动
scrapy crawl spider
-
xPath 语法
选取节点
表达式 描述 node 选取此节点的所有子节点 / 从根节点选取 // 从匹配选择的当前节点选择文档中的节点,而不考虑他们的位置 . 选取当前节点 .. 选择当前节点的父节点 @ 选取属性
谓语
表达式 描述 /node/td[1] 选取 node 下面的第一个 td 元素 /node/td[last()] 选取 node 下面的最后一个 td 元素 /node/td[last()-1] 选取 node 下面的倒数第二个 td 元素 /node/td[position()<3] 选取 node 下面的前两个 td 元素 //node[@attr] 选取所有拥有名为 attr 的属性的 node 元素 //node[@attr='value'] 选取所有拥有名为 attr 且值为 value 的属性的 node 元素 /node/td[size>10] 选取 node 下面所有 size 属性值大于10的 td 元素 /node/td[size>10]/span 选取 node 下面所有 size 属性值大于10的 td 元素下面的 span 元素
未知节点
表达式 描述 * 匹配任何元素节点 @* 匹配任何属性节点 node() 匹配任何类型节点