scrapy爬虫

一.目的
1.数据抓取之网络爬虫
2.scrapy的使用方法,能使用scrapy抓取网页数据。
二.能力图谱

三、内容
1.内容:爬取传智播客C/C++讲师的姓名、职称以及个人简介。
2.目标网址:http://www.itcast.cn/channel/teacher.shtml
3.软件: 已经成功 安装好scrapy框架 的pycharm软件 (专业版、社区版都可以)。
4.python3.7及以上。
5.使用scrapy框架实现爬虫,运用xpath解析方式。
四.过程
1、scrapy项目工程: 在pycharm界面中打开 View --> Tool Windows --> Terminal
(1) 验证scrapy是否成功安装: 在Terminal中输入 scrapy 看看是否显示scrapy信息
(2)创建scrapy项目工程 在Terminal中输入:
scrapy startproject + 自定义的项目名称
成功创建项目的目录为:scrapy startproject ITcast
文件说明: scrapy.cfg 项目的配置信息,主要为Scrapy命令行工具提供一个基础的配置信息。(真正爬虫相关的配置信息在settings.py文件中)
items.py:设置数据存储模板,用于结构化数据,如:Django的Model
pipelines.py:数据处理行为,如:一般结构化的数据持久化
settings.py:配置文件,如:递归的层数、并发数,延迟下载等
spiders:爬虫目录,如:创建文件,编写爬虫规则
(3)创建写爬虫的文件 # scrapy genspider +名称 + ‘网站’
建立爬虫文件结果为: scrapy genspider itcast “itcast.cn”
2、解析网页
观察网页,通过浏览器得出他们是这样子的结构,并且我们运用强大的xpath解析方式解析:
3、编写代码 需要编写四个相关联的文件:itcast.py、items.py、settings.py、pipelines.py (管道文件)。

(1) itcast.py # -*- coding: utf-8 -*-import scrapy  #导入容器 from ITcast.items import  ItcastItemclass ItcastSpider(scrapy.Spider):# 爬虫名 启动爬虫时需要的参数*必需    name = 'itcast'# 爬取域范围 允许爬虫在这个域名下进行爬取(可选)  可以不写                        allowed_domains = ['itcast.cn']    #起始url列表  爬虫的第一批请求,将求这个列表里获取     start_urls = ['http://www.itcast.cn/channel/teacher.shtml']     def parse(self, response):         node_list = response.xpath("//div[@class='li_txt']")        for node in node_list:             #创建item字段对象,用来存储信息             item = ItcastItem()             # .extract() 将xpath对象转换围殴Unicode字符串             name = node.xpath("./h3/text()").extract()             title = node.xpath("./h4/text()").extract()             info = node.xpath("./p/text()").extract()             item['name'] = name[0]             item['title'] = title[0]             item['info'] = info[0]            #返回提取到的每一个item数据 给管道文件处理,同时还会回来继续执行后面的代码             yield item
(2)items.py
#-*- coding: utf-8 -*-
#Define here the models for your scraped items
#
#See documentation in:
#https://doc.scrapy.org/en/latest/topics/items.html
import scrapy
class ItcastItem(scrapy.Item):
#define the fields for your item here like:
#与itcast.py 定义的一一对应
name = scrapy.Field()
title = scrapy.Field()
info = scrapy.Field()
#pass
(3)settings.py
找到以下字段,取消字段的注释。
ITEM_PIPELINES = {     'ITcast.pipelines.ItcastPipeline': 100,     #值越小优先级越高 }
(4) pipelines.py (管道文件)
import json
class ItcastPipeline(object):     def __init__(self):        #python3保存文件 必须需要'wb'  保存为json格式         self.f = open("itcast_pipeline.json",'wb')     def process_item(self, item, spider):         #读取item中的数据 并换行处理         content = json.dumps(dict(item),ensure_ascii=False) + ',\n' self.f.write(content.encode('utf=8'))                             return item      def close_spider(self,spider):        #关闭文件         self.f.close()

(5)执行文命令行:
scrapy crawl + 爬虫文件的名称。
在Terminal中输入 scrapy crawl itcast 执行scrapy项目,生成json文件:
五、总结
1.建立一个scrapy工程的过程以及准备工作,创建爬虫文件。
2.编写四个相关文件itcast.py、items.py、settings.py、pipelines.py 。
itcast.py指爬虫输出格式的文件,输出爬取网页的数据的输出文件。
items.py是指爬虫数据保存的容器。
settings.py是用来爬取网页数据的文件。
pipelines.py是用来传输数据的文件。
3.最后运行scrapy项目,生成json文件来展示爬取的网络数据。

scrapy爬虫网站数据相关推荐

  1. 利用Python爬虫网站数据直接导入mysql数据库中

    说明: 可能经常出现要爬取某个网站的数据,这时候需要利用爬虫技术来完成,这块主要使用Python来实现. 如何搭建Python环境我上节文章有详细描述:使用Python3.7实现爬虫技术,获取自己想要 ...

  2. 【Python爬虫网站数据实战】Python爬虫 统计淘宝商品数据+数据可视化

  3. scrapy爬虫储存到mysql_详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库

    获取要爬取的URL 爬虫前期工作 用Pycharm打开项目开始写爬虫文件 字段文件items # Define here the models for your scraped items # # S ...

  4. mysql scrapy 重复数据_大数据python(scrapy)爬虫爬取招聘网站数据并存入mysql后分析...

    基于Scrapy的爬虫爬取腾讯招聘网站岗位数据视频(见本头条号视频) 根据TIOBE语言排行榜更新的最新程序语言使用排行榜显示,python位居第三,同比增加2.39%,为什么会越来越火,越来越受欢迎 ...

  5. Scrapy爬虫轻松抓取网站数据

    Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. 其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也 ...

  6. 【EduCoder答案】Scrapy爬虫(二)热门网站数据爬取

    简介 答案查询的入口网页版 并不是所有的关卡都有答案,有些只有部分关卡有 不要直接复制答案哦 Scrapy爬虫(二)热门网站数据爬取 >>>查看 第1关:猫眼电影排行TOP100信息 ...

  7. Scrapy爬虫(6)爬取银行理财产品并存入MongoDB(共12w+数据)

      本次Scrapy爬虫的目标是爬取"融360"网站上所有银行理财产品的信息,并存入MongoDB中.网页的截图如下,全部数据共12多万条.   我们不再过多介绍Scrapy的创建 ...

  8. 爬虫之scrapy框架的数据持久化存储/保存为scv,json文件

    文章目录 前情回顾 selenium+phantomjs/chrome/firefox execjs模块使用 今日笔记 scrapy框架 小试牛刀 猫眼电影案例 知识点汇总 数据持久化存储(MySQL ...

  9. Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库

    Scrapy爬虫,请先准备好Scrapy的环境 获取要爬取的URL 爬虫前期工作 用Pycharm打开项目开始写爬虫文件 启动爬虫 获取要爬取的URL 爬虫前期工作 用Pycharm打开项目开始写爬虫 ...

最新文章

  1. android jks sha1,Android 获取签名文件jks的SHA1值或者SHA256的值
  2. Union all的用法实例sql
  3. bootstrap-table.js如何根据单元格数据不同显示不同的字体的颜色
  4. 不相交集合求并的路径压缩
  5. hibernate工厂模式_Hibernate锁定模式–乐观锁定模式如何工作
  6. 【机器学习】opencv-人脸识别
  7. php escapeshellcmd,利用/绕过 PHP escapeshellarg/escapeshellcmd函数
  8. 三星Galaxy Note10系列国内发布会官宣:8月21日见!
  9. HDU4183 Pahom on Water(来回走最大流,一个点只经过一次)
  10. Qt总结之六:QPaintEvent绘制雷达图
  11. URL 编码是什么?
  12. 80386汇编_进入32位保护模式
  13. excel中如何锁定单元格
  14. Mysql修改字段名、修改字段类型
  15. 嵌入式Linux misc 设备驱动
  16. 闲时整理3--Android调用指纹验证
  17. 【案例】路由器怎么自动获取IPv6地址?
  18. python 处理锯齿波信号
  19. 【转】这是一篇很完整的元器件选型指南
  20. 《Java基础——break与continue用法详解》

热门文章

  1. Springboot过滤器和拦截器的区别
  2. 电脑浏览器网速变慢变卡
  3. emui11和鸿蒙是什么关系,EMUI11主要特性曝光,鸿蒙没来之前,依旧是主力!
  4. 计算机二级python考试题型和分值
  5. C语言中的按位操作符~介绍
  6. Android双网卡或双IP
  7. 为什么有的公司留不住 90 后新员工?
  8. 目前好用的VUE前端框架开源项目分享
  9. mysql federated_mysql添加Federated引擎问题
  10. 02FFmpeg-音视频基本概念