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选择器略...
------------------------------------------------------------------
四. scrapy shell

  用法:
scrapy shell www.baidu.com(domin)
  优点:调试作用域固定在domin上,调试个别代码不用启动整个框架,从而减少调试时间



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

   res = HtmlXpathSelector(response).select()

  六.增加main,debug整框架

   

from scrapy.cmdline import execute
import sys
import os

sys.path.append(os.path.dirname(os.path.abspath(__file__)))
execute(["scrapy", "crawl", "chouti", "--nolog"])

  

posted @ 2019-05-11 02:34  jum_blog  阅读(183)  评论(0编辑  收藏  举报

载入天数...载入时分秒...