python小项目---Scrapy爬虫---爬取某练习网站指定内容(名言)

运行环境:
Windows10 企业版

1安装scrapy

打开cmd输入pip install scrapy并且回车

2创建scrapy项目

在cmd中切换到指定目录,输入scrapy startproject <项目名 > 回车
在这里插入图片描述

3创建爬虫

在cmd中输入 scrapy genspider <项目名> <被爬取的url起始链接>
这里采用被爬取的链接是一个供学习者联系爬取用的网址:http://lab.scrapyd.cn
在这里插入图片描述(此处名称出了一点小差错,应该是scrapyd,少打了一个 s之后已经更改过了)

4打开编译器(pychram)

打开刚才选定的路径下的文件可看到已经创建好的项目。在这里插入图片描述

5编辑scrapyd.py文件(爬虫文件)

在这里插入图片描述

6修改item.py文件

在这里插入图片描述

代码如下:

import scrapy

class ScrapydemoItem(scrapy.Item):  #该类继承父类scrapy.Item
    # name = scrapy.Field()
    # ↓定义属性
    tag = scrapy.Field()
    cont = scrapy.Field()

7此时再配置修改scrapy.py文件(配置爬虫) 在这里插入图片描述

代码如下:

import scrapy
from scrapydemo.items import ScrapydemoItem

class ScrapydSpider(scrapy.Spider):
    name = 'scrapyd'   #爬虫自己的名字
    # 所允许的域名
    allowed_domains = ['lab.scrapyd.cn']
    # 起始的url地址
    start_urls = ['http://lab.scrapyd.cn/']

    def parse(self, response):
        # 爬名言
        mingyan = response.css('div.quote')
        # 实体化item类
        item = ScrapydemoItem()
        for i in mingyan:
            item['cont'] = i.css('.text::text').extract_first()
            tags = i.css('.tags .tag::text').extract()

            item['tag'] = ','.join(tags)
            yield item
        # 翻页操作
        next_page = response.css('li.next a::arrt(href)').extract_frist()
        if next_page is not None:
            # 加入到要请求的url中去
            next_page = response.urljoin(next_page)
            yield scrapy.Request(next_page, callback = self.parse)
            # callback:完成后再次返回解析器 ↑

其中

def parse(self, response):
        # 爬名言
        mingyan = response.css('div.quote')
        # 实体化item类
        item = ScrapydemoItem()
        for i in mingyan:
            item['cont'] = i.css('.text::text').extract_first()
            tags = i.css('.tags .tag::text').extract()

            item['tag'] = ','.join(tags)
            yield item
        # 翻页操作
        next_page = response.css('li.next a::arrt(href)').extract_frist()
        if next_page is not None:
            # 加入到要请求的url中去
            next_page = response.urljoin(next_page)
            yield scrapy.Request(next_page, callback = self.parse)

爬取依据是根据所要爬取网页内源码而选择出来的:在这里插入图片描述在这里插入图片描述

8配置运行文件

在scrapyd.py目录下创建名为“debug”的Python file
在这里插入图片描述然后进行代码编写:
在这里插入图片描述代码如下:

from scrapy.cmdline import execute

# execute('scrapy crawl 爬虫的名字')
execute('scrapy crawl scrapyd'.split())

9运行运行文件(debug)

ctrl + shift +F10运行运行文件,爬取结果如下图:

在这里插入图片描述
这样就用scrapy框架爬取到了一些没有robots协议约束的网站内的文字信息了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值