scrapy 框架基本使用

scrapy简介:
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中。
其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试

一.基本使用
1. scrapy startproject 项目名称
- 在当前目录中创建中创建一个项目文件(类似于Django)
-cd 项目名称 进入项目目录

2. scrapy genspider [-t template] <name> <domain>
- 创建爬虫应用
如:
scrapy gensipider -t basic oldboy oldboy.com
scrapy gensipider -t xmlfeed autohome autohome.com.cn
PS:
查看所有命令:scrapy gensipider -l
查看模板命令:scrapy gensipider -d 模板名称

3. scrapy list
- 展示爬虫应用列表

4. scrapy crawl 爬虫应用名称 --nolog
- 运行单独爬虫应用
-----------------------------------------------------
二.项目结构

project_name/
    scrapy.cfg
    project_name /
        __init__.py
        items.py
        pipelines.py
        settings.py
        spiders /
            __init__.py
            爬虫 1.py
            爬虫 2.py
            爬虫 3.py 
  文件说明:
  • scrapy.cfg  项目的主配置信息。(真正爬虫相关的配置信息在settings.py文件中)
  • items.py    设置数据存储模板,用于结构化数据,如:Django的Model
  • pipelines    数据处理行为,如:一般结构化的数据持久化
  • settings.py 配置文件,如:递归的层数、并发数,延迟下载等
  • spiders      爬虫目录,如:创建文件,编写爬虫规则

-----------------------------------------------------------------------------------------------------

三.xpath选择器基本使用

// 子子孙孙
.// 当前子子孙孙
/ 儿子
/div[@id="i1"] 儿子中div标签切id为i1
/div[@id="i1"]/text() 获取某个标签的文本
obj.extract() 列表中每个字符串=》[]
obj.extract.first() 列表中每个字符串=》列表第一个元素

运用url做选择
// a[re:test(@href,"/all/hot/recent/\d+")]/@href

注:可在Chrome浏览器审查元素中,选中并copy xpath
css选择器略...
-------------------------------------------------


四.常用函数
  • Request是一个封装用户请求的类,在回调函数中yield该对象表示继续访问
  • HtmlXpathSelector用于结构化HTML代码并提供选择器功能
    •  res = HtmlXpathSelector().select()

猜你喜欢

转载自www.cnblogs.com/jum-bolg/p/10847559.html