目录

  • Scrapy是啥
  • Scrapy的安装
  • 实例:爬取美剧天堂new100:
    • (1)创建工程:
    • (2) 创建爬虫程序
    • (3) 编辑爬虫
    • (4)设置item模板:
    • (5) 设置配置文件
    • (6)设置数据处理脚本:
    • (7)运行爬虫

Scrapy是啥

scrapy是一个使用python编写的开源网络爬虫框架。这里的框架实际上就是应用程序的骨架,是一个半成品,框架能够保证程序结构风格统一。

Scrapy的安装

pip install Scrapy。但在此之前要先安装几个包:
在cmd中运行以下语句:
(1) pip install wheel
(2) pip install lxml
(3) pip install twisted
(4) 最后 pip install scrapy
(5) 验证Scrapy框架是否安装成功:
打开python,试试import scrapy 和scrapy.version_info

如图看到Scrapy库的版本为2.4.1

实例:爬取美剧天堂new100:

(1)创建工程:

找一个文件夹,打开cmd进入该目录。
输入命令:
Scrapy startproject movie

这时可以看到该目录下多了一个叫movie的文件夹,而这个文件夹里面还有一个叫movie的文件夹,里面是这样的:

这样Scrapy项目就成功创建了。

(2) 创建爬虫程序

用cd先进入movie目录,输入命令:
Scrapy genspider meiju meijutt.tv

该命令创建了一个叫meiju的爬虫
这时查看spiders目录可以看到多了一个meiju.py,就是我们刚创建的爬虫。

(3) 编辑爬虫

用编辑器打开meiju.py

这个网站的内容是我们的爬取目标

import scrapy
from movie.items import MovieItemclass MeijuSpider(scrapy.Spider):  # 继承这个类name = 'meiju'  #名字allowed_domains = ['meijutt.tv']  # 域名start_urls = ['https://www.meijutt.tv/new100.html']  # 要补充完整def parse(self, response):movies = response.xpath('//ul[@class="top-list  fn-clear"]/li')  # 看不懂for each_movie in movies:item = MovieItem()item['name'] = each_movie.xpath('./h5/a/@title').extract()[0]yield item  # 一种特殊的循环

(4)设置item模板:

在items中输入:

import scrapyclass MovieItem(scrapy.Item):# define the fields for your item here like:# name = scrapy.Field()
name = scrapy.Field()

(5) 设置配置文件

在settings.py中增加代码:

ITEM_PIPELINES = {'movie.pipelines.MoviePipeline':100}

(6)设置数据处理脚本:

在pipelines.py中输入代码:

import jsonclass MoviePipeline(object):def process_item(self, item, spider):return item

(7)运行爬虫

在爬虫根目录执行命令:
Scrapy crawl meiju

Emm发现meiju.py有错误,看了一下是由于冒号后面的语句没有缩进。

现在看看那两个xpath选择器的内容:

movies = response.xpath('//ul[@class="top-list  fn-clear"]/li')# 意思是选中所有的属性class值为"top-list  fn-clear"的ul下的li标签内容

也就是说movies得到的是li标签之间的内容的列表

for each_movie in movies:item = MovieItem()item['name'] = each_movie.xpath('./h5/a/@title').extract()[0]# .表示选取当前节点,也就是对每一项li,其下的h5下的a标签中title的属性值yield item  # 一种特殊的循环

修改增加缩进,并修改第一个xpath的内容后再次运行:

可以看到爬取成功

一个Scrapy爬虫实例相关推荐

  1. 【python实现网络爬虫(5)】第一个Scrapy爬虫实例项目(Scrapy原理及Scrapy爬取名言名句网站信息)

    Scrapy介绍 总共有五部分组成的:具体的流程可看图示 引擎.调度器.下载器.蜘蛛和项目管道 爬取流程 针对于每个URL, Scheduler -> Downloader -> Spid ...

  2. 简单scrapy爬虫实例

    简单scrapy爬虫实例 流程分析 抓取内容:网站课程 页面:https://edu.hellobi.com 数据:课程名.课程链接及学习人数 观察页面url变化规律以及页面源代码帮助我们获取所有数据 ...

  3. python学习(三)scrapy爬虫框架(二)——创建一个scrapy爬虫

    在创建新的scrapy爬虫之前,我们需要先了解一下创建一个scrapy爬虫的基本步骤 第一步:确定要爬取的数据 以爬取豆瓣电影数据为例: 每部电影所要爬取的信息有: 片名:<头号玩家> 导 ...

  4. Scrapy爬虫实例——校花网

    学习爬虫有一段时间了,今天使用Scrapy框架将校花网的图片爬取到本地.Scrapy爬虫框架相对于使用requests库进行网页的爬取,拥有更高的性能. Scrapy官方定义:Scrapy是用于抓取网 ...

  5. python每天定时9点执行_[求助]关于twisted框架,如何每天定时执行一个scrapy爬虫...

    RT,最近在学scrapy,写了一个简单的爬取网页数据的爬虫,利用CrawlProcess单次调用执行的时候没有问题,脚本如下,就是清空数据表然后爬取数据: class updateBoardData ...

  6. Scrapy 爬虫实例 抓取豆瓣小组信息并保存到mongodb中

    这个框架关注了很久,但是直到最近空了才仔细的看了下 这里我用的是scrapy0.24版本 先来个成品好感受这个框架带来的便捷性,等这段时间慢慢整理下思绪再把最近学到的关于此框架的知识一一更新到博客来. ...

  7. 在anaconda下创建我的第一个scrapy爬虫——爬取dmoz网站某一网址下的目录的链接名称以及链接地址...

    这里我用的python工具是anaconda. 1.首先创建一个scrapy工程: 打开anaconda promt命令行(注意这里不是使用cmd打开windows下的命令行),进入到需要创建工程的目 ...

  8. 安装scrapy模块,创建一个Scrapy爬虫项目,并运行

    创建一个Scrapy项目,首先需要所需要的模块 一丶安装scrapy框架所有模块 1.第一个安装的依赖库是lxml ,命令是: pip install lxml 2.第二个依赖库是pyOpenSSL, ...

  9. SCRAPY爬虫实例

    一:Scrapy简介 scrapy是一个爬虫框架,支持多线程爬取数据,使用简单,爬取效率高. 二:项目介绍 1:爬取对象 #乐彩网历史双色球开奖号码,网址如下 http://www.17500.cn/ ...

  10. Python 三.创建第一个scrapy爬虫项目(分布式爬虫打造搜索引擎)

    1.安装pywin32 打开cmd窗口 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pywin32 2.安装Twisted网络数据处 ...

最新文章

  1. [导入]MsAjax Lib- Boolean.parse 函数
  2. 用leda没有java enterprise选项_Visual Studio 支持 Java?谣言止于智者
  3. thinkphp路由配置 php7.0,thinkphp3.2 路由设置方法
  4. CentOS7 install google-chrome-stable
  5. 如何爬取ajax实时加载多个ts文件的视频
  6. php搭建后台 xampp_你还在用wordpress?|搭建独一无二个人网络日志发布平台
  7. 计算机组成原理---之原码,补码,反码
  8. linux yum安装python3_在Linux - Centos上安装Python3(上)
  9. PostgreSQL数据库从入门到精通
  10. vue.js环境+腾讯防水墙+实现弹窗滑动模块验证登录
  11. 计算机连接未识别的网络,电脑网络连接处出现未识别的网络无Internet访问的解决办法...
  12. windows service and target‏
  13. 如何用几百美元撬动数亿美元的大生意?德比软件做到了
  14. B站最全Redis教程全集(2021最新版)(图灵学院诸葛)学习笔记一--五种数据结构与应用场景
  15. 【转】faster-rcnn原理及相应概念解释
  16. 干货分享 | 代谢组学数据分析,常见图形制作分享-百趣生物
  17. 精致纯CSS打造绿色漂亮导航栏
  18. Vue.js 源码分析(五) 基础篇 方法 methods属性详解
  19. Three.js物理引擎与物体的相互作用——关联材质对摩擦力弹性影响、物体运动方式、作用力相关
  20. naiveui ssr错误

热门文章

  1. 安卓设备投影到电脑PC端的简单实现
  2. python pandas合并多个excel,Python pandas实现excel工作表合并功能详解
  3. win10 自带wi-fi热点速度太慢怎么办_win10wifi热点速度极慢如何解决
  4. 2017 EC-Final A Chat Grou
  5. 安卓一些错误经验积累
  6. LeetCode每日一题(22年1月27日-2月5日)
  7. java 静态方法中调用非静态方法
  8. Tier-1 ISP Tier-2 ISP and Tier-3 ISP
  9. android----面试基础概括总结
  10. Phpstudy简介与使用教程