github: { enable: true, color: '#ffb3cc', url: 'https://github.com/quanyang2002', },

Scrapy 入门笔记

scrapy框架

scrapy

scrapy是什么?

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

安装scrapy

conda install scrapy

scrapy项目的创建和运行

创建scrapy项目

scrapy startproject 项目名称

注意:

  • 项目名称不能以数字开头
  • 项目名称不能含有中文

scrapy项目结构

scrapy项目结构解析

spiders文件夹存储的是爬虫文件

items文件是定义数据结构的地方,爬取的数据都有哪些

middleware 中间件 代理

pipelines 管道 用来处理下载的数据

注意:我们所写的爬虫程序都存放在spiders文件夹中

scrapy创建爬虫文件

cd 项目名称\项目名称\spiders
scrapy genspider 爬虫名称 要爬取网页的url地址(不需要添加协议头)

注意:这里不需要添加协议头是因为在创建好的爬虫文件中的start_urls会自动添加协议头

scrapy爬虫文件代码结构

注意:

  • allowed_domains限制了我们所能爬取的网站
  • start_urls表示我们要开始访问的第一个url

scrapy运行爬虫

scrapy crawl 爬虫名称

scrapy-robots协议

在scrapy创建的爬虫项目中,settings.py 存在如下设定:

注意:

  • 其中的ROBOTSTXT_OBEY = False 表示不遵守爬取网站所设置的robots协议,该配置项默认值为True
  • robots.txt是一般网站针对爬虫所设置的“君子协议”,其中规定了不同类型的爬虫所能爬取的内容以及不能爬取的内容

scrapy58同城案例

创建项目

进入爬虫文件目录并创建爬虫

编辑创建的爬虫文件

注意:

  • 如果在创建爬虫时,指定爬取的url时,添加了协议头,这里的start_urls会产生多余的协议头,需要将其去除
  • 如果请求的接口是以html结尾,最后的/可以去掉

运行tc爬虫

从上图中可以看出,我们的请求没有得到响应,被爬取网站可能设置了相关反爬措施,也有可能我们的爬虫遵守了robots.txt,先将我们编写的爬虫文件设置不遵守robots.txt协议

重新运行

scrapy shell

scrapy shell简介

scrapy shell,是一个交互终端,供您在未启动spider的情况下尝试及调试您的代码。其本意是用来测试提取数据的代码,不过您可以将其作为正常的python终端,在上面测试任何的python代码。

该终端是用来测试xpath或css表达式,查看他们的工作方式及从爬取的网页中提取的数据。在编写您的spider时,该终端提供了交互性测试您的表达式代码的功能,免去了每次修改后运行spider的麻烦。

一旦熟悉了scrapy终端后,您会发现其在开发和调试spider时发挥的巨大作用。

注意:scrapy shell是基于ipython实现的,所以需要安装ipython,具体安装命令如下:

pip install ipython

scrapy shell 基本使用

直接进入windows终端下,输入以下命令:

scrapy shell 域名

运行完上述命令后,我们会进入python终端,并且已经生成了 访问我们传入域名的response对象,可以直接对其进行一系列的操作

本文作者:shineQ

本文链接:https://www.cnblogs.com/ShineQ/p/16740896.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   shineQ  阅读(59)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.