python爬虫入门(八)------scrapy学习

request vs Scrapy

相同点:两者都可以进行页面请求和爬取,python爬虫的两个重要技术路线;两者可用性都好,文档丰富,入门简单;两者都没有处理js、提交表单、应对验证码等功能(可扩展)
不同点:requests:页面级爬虫;功能库;并发性考虑不足,性能较差;重点在于页面下载;定制灵活;上手十分简单。scrapy:网站级爬虫;框架;并发

简单介绍

python一个强大的爬虫框架(5+2结构) 
spinder:  解析Downloader返回的响应(response);产生爬取项(scraped item);产生额外的爬去请求(Request)
item Pipelines 以流水线方式处理Spider产生的爬取项;由一组操作顺序组成,类似流水线,每个操作是一个item Pipeline
yield关键字的使用:含yied关键字的为上生成器(生成器是一个不断产生值的函数)(包含yield语句的函数是一个生成器)(生成器每次产生一个值(yield语句),函数被冻结,被唤醒后再产生一个值)

Request类:产生请求
.url:requests对应的请求的url地址;
.method:对应请求的方法'get','post';
.headers:字典类型风格的请求头
.body:请求内容主体,字符串类型;
.meta:用户添加的扩展信息,在scrapy内部模块间传递信息使用
.copy()复制该请求

Response类:返回一个响应
.url:response对应的url地址;
.staus:;http状态码,默认是200;
.headers:response对应的头部信息
.body:response对应的内容信息,字符串类型;
.flags:一组标记;
.request:产生response类型对应的request对象
.copy()复制该响应

item类:item对象表示一个从html页面中提取的信息内容;
由spider生成,由item pipeline处理 ;item类似字典类型,可以按照字典类型操作 

安装

pip install scrapy

scrapy命令介绍

scrapy list    查看当前项目内有多少爬虫
scrapy view http://www.baidu.com  view使用浏览器打开网页
scrapy startproject <project_name> 这个命令是scrapy最为常用的命令之一,它将会在当前目录下创建一个名为 <project_name>的项目。
scrapy runspider <spider_file.py> 在未创建项目的情况下,运行一个编写在Python文件中的spider。
scrapy fetch <url> 使用Scrapy下载器(downloader)下载给定的URL,并将获取到的内容送到标准输出。简单的来说,就是打印url的html代码。
scrapy version [-v] 输出Scrapy版本。配合 -v 运行时,该命令同时输出Python, Twisted以及平台的信息。
scrapy crawl <spider_name> 使用你项目中的spider进行爬取,即启动你的项目。这个命令将会经常用到,我们会在后面的内容中经常使用。
scrapy genspider [-t template] <name> <domain>在当前项目中创建spider。该方法可以使用提前定义好的模板来生成spider。您也可以自己创建spider的源码文件。scrapy genspider py名字 baidu.com
scrapy settings [options] 获得爬虫配置信息 
scrapy shell [url] 启动URL调试命令行 

使用步骤

步骤:在命令行中输入
一、建立一个Scrapy爬虫工程
scrapy startproject python123demo 
二、在工程中产生一个Scrapy爬虫
cd python123demo
scrapy genspider demo python123demo.io
三、配置产生的spider爬虫,编写项目中spiders目录下创建的文件,该项目中是demo.py
四、使用scrapy crawl demo执行该跨框架

基于以上例子,关于目录结构的介绍

└─python123demo                  #外层目录
    │  demo.html				 #
    │  scrapy.cfg				 #部署Scrapy爬虫的配置文件
    │
    └─python123demo				 #Scrapy框架的用户自定义python代码
        │  items.py				 #Items代码模板(继承类)
        │  middlewares.py		 #Middlewares代码模板(继承类)
        │  pipelines.py			 #Pipelines代码模板(继承类)
        │  settings.py			 #Scrapy爬虫的配置文件
        │  __init__.py			 #初始化脚本
        │
        ├─spiders				 #Spiders代码模板目录(继承类)
        │  │  demo.py			 #爬虫文件,需要用户自己编写
        │  │  __init__.py		 #初始化文件,无需修改
        │  │
        │  └─__pycache__		 #缓存目录,无需修改
        │          demo.cpython-36.pyc
        │          __init__.cpython-36.pyc
        │
        └─__pycache__
                settings.cpython-36.pyc
                __init__.cpython-36.pyc
html页面的提取方法css selector的基本使用
<html>.css('a::attr(href)').extract()

参考学习网址:
https://www.icourse163.org/course/BIT-1001870001

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值