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
在这里插入图片描述

发布了22 篇原创文章 · 获赞 17 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/BerryNard/article/details/100575249