Python——记Scrapy的基本使用

Scrapy 爬虫的使用步骤
  • 创建一个工程
  • 编写Spider
  • 编写Item Pipeline
  • 优化配置策略

①Request类:向网络中提交请求

class scrapy.http.Request()
  • Request对象表示一个HTTP请求。
  • 由Spider生成,由Downloader执行。

Resquest类
在这里插入图片描述
②Response类:网络中爬取内容的封装类
class scrapy.http.Response()

  • Response对象表示一个HTTP响应。
  • 由Downloader生成,由Spider处理

Response类
在这里插入图片描述
③Item类: 由Spider产生的信息封装的类

class scrapy.item.Item()
  • Item对象表示一个从HTML页面中提取的信息内容。
  • 由Spider生成,由Item Pipeline处理。
  • Item类似字典类型,可以按照字典类型进行操作

Scrapy爬虫提取信息的方法

  • Beautiful Soup
  • lxml
  • re
  • XPath Selector
  • CSS Selector

记一个小?:

首先打开Pycharm, 进入Terminal:
在这里插入图片描述
然后cd到文件目录,输入命令:

scrapy startproject python demo

然后我们回到工程文件的目录发现自动生成了一堆文件, 简单介绍一下:
demo:外层目录
 scrapy.cfg:部署Scrapy爬虫的配置文件
 python:Scrapy框架的用户自定义Python代码
  __init_.py:初始化脚本
  items.py:Items代码模板(继承类)
  middlewares.py:Middlewares代码模板(继承类)
  pipelines.py:Pipelines代码模板(继承类)
  settings.py:Scrapy爬虫的配置文件,优化爬虫功能需要修改其中的配置项
  spiders:存放建立的爬虫
   __init_
.py:初始化脚本
   _pycache_:缓存
  _pycache_:缓存

然后再到Terminal中,进入到demo目录下
输入

scrapy genspider ex berryqiu.github.io

这样我们就生成了一个名为ex的爬虫。可以来到目录看一下:
在这里插入图片描述
打开它,并修改如下:

# -*- coding: utf-8 -*-
import scrapy


class ExSpider(scrapy.Spider):
    name = 'ex'
    allowed_domains = ['berryqiu.github.io']  # 只能爬取这个域名以下的相关链接
    start_urls = ['https://berryqiu.github.io/pages/q.html']   # 以列表形式表示所要爬取的初始页面

    def parse(self, response):  # parse()用于处理响应,解析内容形成字典发现新的URL爬取请求,self是面向对象类所属关系的标记,response表示从网络中返回内容或所存储的对象
        fname = response.url.split('/')[-1] # 用响应的URL中提取名字
        #将响应的内容保存为文件
        with open(fname, 'wb') as f:
            f.write(response.body)
            self.log('Save file %s.' % fname)
        pass

此时我们查看文件目录, 就会多一个名为q.html
在这里插入图片描述

好的,我可以为您提供爬虫教程,以下是使用Scrapy框架爬取豆瓣电影TOP250的步骤: 1. 创建Scrapy项目 首先需要使用Scrapy命令行工具创建一个Scrapy项目,可以使用以下命令: ``` scrapy startproject douban_top250 ``` 该命令将会在当前目录下创建一个名为douban_top250的Scrapy项目。 2. 创建Spider 接下来需要创建一个Spider来定义爬取的规则,可以使用以下命令在Scrapy项目的spiders目录下创建一个名为douban_spider的Spider: ``` scrapy genspider douban_spider movie.douban.com ``` 在spiders目录下会生成一个名为douban_spider.py的文件,我们可以在该文件中定义爬取规则。 3. 编写Spider规则 在douban_spider.py文件中,我们需要定义如何爬取豆瓣电影TOP250的规则,以下是一个简单的例子: ```python import scrapy from scrapy import Selector from douban_top250.items import DoubanTop250Item class DoubanSpider(scrapy.Spider): name = "douban_spider" allowed_domains = ["movie.douban.com"] start_urls = [ "https://movie.douban.com/top250" ] def parse(self, response): selector = Selector(response) item_list = selector.xpath('//ol[@class="grid_view"]/li') for item in item_list: douban_item = DoubanTop250Item() douban_item['rank'] = item.xpath('div[@class="pic"]/em/text()').extract()[0] douban_item['title'] = item.xpath('div[@class="info"]/div[@class="hd"]/a/span[@class="title"]/text()').extract()[0] douban_item['rating'] = item.xpath('div[@class="info"]/div[@class="bd"]/div[@class="star"]/span[@class="rating_num"]/text()').extract()[0] douban_item['quote'] = item.xpath('div[@class="info"]/div[@class="bd"]/p[@class="quote"]/span[@class="inq"]/text()').extract()[0] yield douban_item ``` 在上述代码中,我们定义了一个名为DoubanSpider的Spider,并定义了一些爬取规则: - allowed_domains:定义允许爬取的域名; - start_urls:定义爬虫开始爬取的URL列表; - parse:定义如何解析响应结果,生成Item对象。 4. 定义Item 在上述代码中,我们定义了一个名为DoubanTop250Item的Item,需要在douban_top250/items.py文件中定义该Item,以下是一个简单的例子: ```python import scrapy class DoubanTop250Item(scrapy.Item): rank = scrapy.Field() title = scrapy.Field() rating = scrapy.Field() quote = scrapy.Field() ``` 在上述代码中,我们定义了DoubanTop250Item包含以下字段: - rank:电影排名; - title:电影名称; - rating:电影评分; - quote:电影的经典语录。 5. 运行Spider 在完成上述步骤后,就可以运行Spider开始爬取豆瓣电影TOP250了,可以通过以下命令来运行Spider: ``` scrapy crawl douban_spider -o douban_top250.csv ``` 该命令将会运行名为douban_spider的Spider,并将结果保存到douban_top250.csv文件中。 以上就是使用Scrapy爬取豆瓣电影TOP250的基本步骤,希望能对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值