Python数据爬虫学习笔记(19)Scrapy天善智能网课信息爬虫
一、需求:爬取天善智能网站中的所有网课的信息,包括网课名称、学习人数以及链接。
二、Scrapy实现思路:使用传统的方法,找寻每个网课的URL规律,使用for循环来循环爬取网课网页的信息。
三、URL及源代码分析:
1、URL分析,注意到网课的URL由+网课编号组成,不断更换网课编号进行测试注意到,网课编号是连续的且最大值为294(截至发博文的日期)。
2、源代码分析,观察网课网页中的源代码,找寻其中的网课名称、学习人数以及网课链接所在的源码标签结构,若源码中出现多次,则选取最易构建XPath表达式的:
1)网课名称
2)学习人数
3)网课链接
四、编写代码:
1、items.py:
import scrapy
class TsprojectItem(scrapy.Item):#网课标题title=scrapy.Field()#网课链接link=scrapy.Field()#网课学习人数stu=scrapy.Field()
2、pipelines.py:
class TsprojectPipeline(object):#设置爬取的数据存储在TXT文件中def __init__(self):self.fh=open("E:/Scrapy/result/1.txt","a")#处理爬取的数据def process_item(self, item, spider):print(item["title"])print(item["link"])print(item["stu"])print("------------")self.fh.write(item["title"][0]+"\n"+item["link"][0]+"\n"+item["stu"][0]+"\n"+"------------"+"\n")return item#爬取结束后关闭文件def close_spider(self):self.fh.close()
3、settings.py:
ITEM_PIPELINES = {'tsproject.pipelines.TsprojectPipeline': 300,
}
4、tsSpider.py(创建的爬虫文件):
import scrapy
from tsproject.items import TsprojectItem
from scrapy.http import Requestclass TsspiderSpider(scrapy.Spider):name = 'tsSpider'allowed_domains = ['hellobi.com']#起始爬虫网址start_urls = ['https://edu.hellobi.com/course/1']#解析数据方法def parse(self, response):item=TsprojectItem()#设置XPath表达式进行爬取item["title"]=response.xpath("//ol[@class='breadcrumb']/li[@class='active']/text()").extract()item["link"]=response.xpath("//ul[@class='nav nav-tabs']/li[@class='active']/a/@href").extract()item["stu"] = response.xpath("//span[@class='course-view']/text()").extract()#传递itemyield itemfor i in range(0,295):# 构建新url进行传递,并设定解析函数仍为parseurl="https://edu.hellobi.com/course/"+str(i)yield Request(url,callback=self.parse)
五、运行结果:
1)cmd中的运行结果(本博文使用PowerShell代替):
2)文件中的运行结果:
Python数据爬虫学习笔记(19)Scrapy天善智能网课信息爬虫相关推荐
- Python数据科学学习笔记之——机器学习专题
机器学习专题 1.专题:朴素贝叶斯分类 1.1.朴素贝叶斯分类 朴素贝叶斯分类器建立在贝叶斯分类方法的基础上,其数学基础是贝叶斯定理--一个描述统计量条件概率关系的公式.在贝叶斯分类中,我们希望确定一 ...
- Python数据科学学习笔记之——Matplotlib数据可视化
Matplotlib 数据可视化 1.Matplotlib 常用技巧 1.1.导入 Matplotlib import matplotlib as mpl import matplotlib.pypl ...
- 建立数组并写入数据_VBA学习笔记19:数组1
学习资源:<Excel VBA从入门到进阶>第20集 by兰色幻想 一.什么是VBA数组? VBA数组就是储存一组数据的数据空间,数据类型可以数字,可以是文本,可以是对象,也可以是VBA数 ...
- Python数据可视化学习笔记:第一章 关联图 第四节 使用Python绘制一般气泡图
前言 声明:这个系列的博文都是我自己学习所得的东西,秉承着每天进步一点点的理念进行学习,我参考的课程是<菊安酱与菜菜的Python机器学习可视化50图>,使用的Python版本为3.6.4 ...
- Python自然语言处理学习笔记(19):3.3 使用Unicode进行文字处理
3.3 Text Processing with Unicode 使用Unicode进行文字处理 Our programs will often need to deal with differe ...
- 爬虫学习笔记——Selenium爬取淘宝商品信息并保存
在使用selenium来模拟浏览器操作,抓取淘宝商品信息前,先完成一些准备工作. 准备工作:需要安装selenium,pyquery,以及Chrome浏览器并配置ChromeDriver. 安装sel ...
- 《Python自动化》学习笔记:百度云智能实现提取身份证信息
问题 由于最近想搞深度学习,和AI这块,计算机算力不够.而且最近经常会碰到一些要用很棘手的算法求解复杂模型的问题. 由于我只对问题的结果有兴趣,而对具体的实现过程不在意,我注意到百度智能云有许多的应用 ...
- Python3 爬虫学习笔记 C09【数据储存系列 — 文件储存】
Python3 爬虫学习笔记第九章 -- [数据储存系列 - 文件储存] 文章目录 [9.1]TXT 文本存储 [9.1.1]基本示例 [9.1.2]打开方式 [9.2]JSON 文件存储 [9.2. ...
- Python3 爬虫学习笔记 C16【数据储存系列 — Redis】
Python3 爬虫学习笔记第十六章 -- [数据储存系列 - Redis] 文章目录 [16.1]关于 Redis [16.2]使用 Redis [16.3]Key(键)操作 [16.4]Strin ...
- Python3 爬虫学习笔记 C11【数据储存系列 — MongoDB】
Python3 爬虫学习笔记第十一章 -- [数据储存系列 - MongoDB] 文章目录 [11.1]关于 MongoDB [11.2]MongoDB 基本操作语句 [11.3]连接 MongoDB ...
最新文章
- 安卓中实现两端对齐,中间fill_parent的方法
- C语言工程实践-简单文本编辑器
- mysql数据库模型生成表_PowerDesigner逆向生成MYSQL数据库表结构总结
- 剑指offer-11.数值的整数次方实现power
- python map、filter、reduce
- sun.misc.Unsafe苦难告诉我们什么
- MapReduce 计算框架如何运作
- 【转】Objective-C 属性特性(assign , retain , copy , readonly , readwrite , atomic , nonatomic)...
- 【转】移动前端工作的那些事---UE/UI架构原型搭建和前端设计之UE架构原型搭建...
- 基于SSM的宠物商城系统
- python文字转语音的五种方式win32com,pyttsx3,百度api,可使用自己的声音
- 一些手机APP默认的文件保存位置
- MyBatis-plus从入门到精通(全)
- mesh 协调器 路由器_请TI技术支持和大神指点下,关于zigbee组建mesh路由网络的问题,谢谢!...
- 利用栈进行数制转换和括号匹配(C语言)
- Apollo自动驾驶之高精地图
- 计算机没考好的检讨书300百以上,考试反思检讨书300字范文7篇
- java内存(java内存溢出的几种原因和解决办法)
- 深入探讨PageRank
- 2017年5月历史文章汇总
热门文章
- 阿里巴巴入选的JCP最高执行委员会,何方神圣?
- 懒惰删除JAVA,Redis的新特性懒惰删除Lazy Free详解
- Redis Master/Salve Replication(主从复制模式)
- ssm搭建整合,这一篇你直接拷走就是一个搭好的框架,前后端可分离,可不分离
- 【Unity3D】个人开发台球小游戏
- 关于#1-D:last line of file ends without a newline警告的解决办法(stm32)
- 计算机对操作系统函数的调用失败,win8系统电脑弹出提示“远程过程调用失败且未执行”的修复方法...
- Win10 关机显示程序没有响应
- bootstrap—预定义样式风格
- 每天多抽出一分钟看书,让你的什么更加精彩。1111节当当购书码