创建简单的scrapy项目,并使用它来爬取数据

  最近在学习scrapy,留个学习笔记

1.创建spider项目

  scrapy startproject + 项目名字 如:scrapy startproject runoob,生成的项目文件结构如下:

  

2. 生成一个spider

  创建完成spider项目runoob后,进入项目(cd runoob) 使用命令:scrapy genspider + 爬虫名 + 爬取的范围(url地址) 生成一个spider

  如:scrapy genspider firstSpider "https://www.runoob.com/",在spider文件夹下多出一个新的py文件,如下:

  

  项目内各个文件的作用:

  

3.爬取数据

  打开firstSpider.py文件,完善spider

  

import scrapy


class FirstspiderSpider(scrapy.Spider):
    name = 'firstSpider'  # 爬虫名
    allowed_domains = ['https://www.runoob.com/']  # 爬取的范围
    start_urls = ['https://www.runoob.com/w3cnote/scrapy-detail.html'] # 开始爬取的url地址

    def parse(self, response):
        pass

4.进入网址https://www.runoob.com/w3cnote/scrapy-detail.html选择下面的内容作为爬取的目标,如下图:

 

  5.进入网页源代码,找到爬取内容所在的位置:

  

  6.在parse方法下写爬取的逻辑,代码如下:

  

import scrapy


class FirstspiderSpider(scrapy.Spider):
    name = 'firstSpider'  # 爬虫名
    allowed_domains = ['https://www.runoob.com/']  # 爬取的范围
    start_urls = ['https://www.runoob.com/w3cnote/scrapy-detail.html'] # 开始爬取的url地址

    def parse(self, response):
        # 使用xpath定位元素位置,获取class='article-intro'的div下的ul下的li
        li_list = response.xpath("//div[@class='article-intro']//ul/li")
        # 遍历li获取结果
        for li in li_list:
            item = {}
            if li.xpath(".//strong/text()").extract_first() is not None:
                item["title"] = li.xpath(".//strong/text()").extract_first()
                item["text"] = li.xpath(".//p/text()").extract_first()
                print(item)


  在 setting.py中设置LOG_LEVEL = 'WARNING',输出比WARNING等级要高的日志信息

  

 

  7.runoob目录下执行使用scrapy crawl+爬虫名 即 scrapy crawl firstSpider运行项目,结果打印如下:

  

  至此一个简单的爬虫完成了。

  

  

 

 

 

转载于:https://www.cnblogs.com/xifengmo/p/10990168.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值