Scrapy入门

Scrapy :

  Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。

其最初是为了 页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。

                        Selectors选择简介:

                                                        从网页中提取数据有很多方法。Scrapy使用了一种基于 XPath 和 CSS 表达式机制:

                                                         Scrapy Selectors。 关于selector和其他提取机制的信息请参考 Selector文档 。

                        Selector有四个基本的方法:

                                                          xpath(): 传入xpath表达式,返回该表达式所对应的所有节点的selector list列表 。

                                                          css(): 传入CSS表达式,返回该表达式所对应的所有节点的selector list列表.

                                                          extract(): 序列化该节点为unicode字符串并返回list。

                                                           re(): 根据传入的正则表达式对数据进行提取,返回unicode字符串list列表。

    Scrapy安装:

                                  1. scrapy需要安装第三方库文件,lxml和Twisted
                                   2. 下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/
                                   3.下载好文件之后,在DOS命令下pip install   文件的位置(lxlm)安装。
                                   安装完成就可以安装:pip  install  scrapy
                                   还需要安装 win32(启动蜘蛛的时候会提示安装,根据python版本来的我32位)
                                   pip install pypiwin32
                                   Scrapy  API地址:https://docs.scrapy.org/en/latest/ 
                                   另外一种方法:
                                   1. 打开pycharm的左上角的File然后找到setting的选项,
                               2.打开了setting之后就像上图选定的蓝色的选项,然后就会出现已经安装好了
                               的第三方的包。右侧有一个绿色的加号,点进那个加号。
                               3.然后你想要什么包直接在搜索框中搜索就行啦,搜索到之后就会自动帮你选中,
                          然后点击下面的intall Package就ok啦安装成功了就会给你一个绿色的成功的
                          提示的信息,如果安装失败了就会有一个红色的error的提示。
                          如果安装失败了也不要着急,一般安装失败的原因是,你要安装的包还需要其他包的支持,
                          因此你就去百度谷歌呗,看看还需要什么包,然后按照顺序一步步的来就行。
                            

 Scrapy运行流程

1 引擎访问spider,询问需要处理的URL链接,spider收到请求,将需要处理的URL告诉引擎,然后将URL给引擎处理。
2 引擎通知调度器,调度器得到通知将URL排序入队,并加以处理。
3 引擎通知调度器,调度器将处理好的request返回给引擎
4 引擎接收到request后告诉下载器,按照setting中配置的顺序下载这个request的请求
5 下载器收到请求,将下载好后的东西返回给引擎。如果下载失败,下载器会通知引擎,引擎再通知调度器,调度器收到消息后会记录这个下载失败的request。
6 引擎得到下载好的东西后,通知spider(这里responses默认是交给def parse()函数处理)
7 Spider收到通知后,处理接收的数据
8 Spider处理完数据后返回给引擎两个结果:一个是需要跟进的URL,另一个是获取到的item数据。
9 引擎将接收到的item数据交给管道处理,将需要跟进的URL交给调度器处理。重复循环直到获取完需要的全部信息。

创建项目:

                找一个你以后存放scrapy文件的地方执行命令:scrapy startproject JMeterVersion(文件名)

          具体代码如下:

  import scrapy

class huya(scrapy.Spider):
    name = "cainiao"
    start_urls = [
        "http://www.runoob.com/php/php-tutorial.html",
    ]
    def parse(self, response):
        list = response.css("div.codelist.codelist-desktop  a")
        for tex  in list:
            print(tex.css("a::text").extract_first())

定义Item

Item 是保存爬取到的数据的容器;其使用方法和python字典类似, 并且提供了额外保护机制来避免拼写错误导致的未定义字段错误。

1、 对item进行建模→从需要爬取的网站中获取名字,url,以及网站的描述

2、 在item中定义相应的字段,编辑项目中的items.py文件

import scrapy

class DmozItem(scrapy.Item):

    title = scrapy.Field()

    link = scrapy.Field()

    desc = scrapy.Field()


               


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值