网络段子爬虫程序加强版-Scrapy框架
上一篇爬虫中,https://blog.csdn.net/ai_64/article/details/90166089
代码太多,有近100行代码,还有复杂的正则表达式。
光是构造正则表达式就已经让人抓狂了。
本文使用scrapy爬虫框架,主要优点有三:
1.不用构造复杂的正则表达式。
2.爬取效率更高。
3.代码逻辑更优更简洁。
项目git地址:
git@github.com:cuanboy/scrapyTest.git
本文参考了以下资料
urllib2库的基本使用
https://blog.csdn.net/kingov/article/details/80173251
传智播客黑马社区
http://bbs.itheima.com/thread-344264-1-1.html
scrapy菜鸟教程
https://www.runoob.com/w3cnote/scrapy-detail.html
# -*- coding: utf-8 -*-
"""
语言版本:
python:3.7
scrapy:1.6
功能:不使用正则表达式,改用scrapy爬取段子.
"""
import scrapyclass DuanZiSpider(scrapy.Spider):name = "duanSpider"allowed_domains = ["duanziwang.com"]start_urls = ['http://duanziwang.com/category/经典段子/']def parse(self, response):duanzi_list = response.css('article') # 提取首页所有笑话,保存至变量duanzi_listfor viv in duanzi_list: # 循环获取每一条笑话里面的:标题、内容title = viv.css('.post-title a::text').extract_first() # 提取笑话标题contents = viv.css('.post-content p::text').extract() # 提取笑话内容text = ''.join(contents)# text = text.encode('UTF-8','ignore')# text = text.encode('gb2312','ignore')"""接下来进行写文件操作,储存在一个txt文档里面"""file_name = 'happy.txt' # 定义文件名,如:happy.txtf = open(file_name, "a+", encoding='utf-8') # “a+”以追加的形式f.write('标题:' + str(title))f.write('\n') # ‘\n’ 表示换行f.write(str(text))f.write('\n-------\n')f.close()next_page = response.css('.next::attr(href)').extract_first() # css选择器提取下一页链接# print("!!!!!!The page is:" + str(next_page))if next_page is not None: # 判断是否存在下一页"""相对路径如:/page/1urljoin能把相对路径替我们转换为绝对路径,也就是加上文件开头设置的域名最终next_page为:http://host/page/2/ """next_page = response.urljoin(next_page)"""scrapy.Request()第一个参数:下一页链接,第二个参数为内容回调处理函数,这里是parse函数。不断的爬取,直到不存在下一页"""yield scrapy.Request(next_page, callback=self.parse)
网络段子爬虫程序加强版-Scrapy框架相关推荐
- Python爬虫5.3 — scrapy框架spider[Request和Response]模块的使用
Python爬虫5.3 - scrapy框架spider[Request和Response]模块的使用 综述 Request对象 scrapy.Request()函数讲解: Response对象 发送 ...
- 爬虫基础(五)-----scrapy框架简介
---------------------------------------------------摆脱穷人思维 <五> :拓展自己的视野,适当做一些眼前''无用''的事情,防止进入只关 ...
- python爬虫入门(六) Scrapy框架之原理介绍
Scrapy框架 Scrapy简介 Scrapy是用纯Python实现一个为了爬取网站数据.提取结构性数据而编写的应用框架,用途非常广泛. 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬 ...
- pythonscrapy爬虫_零基础写python爬虫之使用Scrapy框架编写爬虫
网络爬虫,是在网上进行数据抓取的程序,使用它能够抓取特定网页的HTML数据.虽然我们利用一些库开发一个爬虫程序,但是使用框架可以大大提高效率,缩短开发时间.Scrapy是一个使用Python编写的,轻 ...
- java启动scrapy爬虫,爬虫入门之Scrapy 框架基础功能(九)详解
Scrapy是用纯Python实现一个为了爬取网站数据.提取结构性数据而编写的应用框架,用途非常广泛. 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非 ...
- PYTHON 爬虫笔记十一:Scrapy框架的基本使用
Scrapy框架详解及其基本使用 scrapy框架原理 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中. 其最初是为 ...
- python爬虫之使用Scrapy框架编写爬虫
转自:http://www.jb51.net/article/57183.htm 前面的文章我们介绍了Python爬虫框架Scrapy的安装与配置等基本资料,本文我们就来看看如何使用Scrapy框架方 ...
- python爬虫学习笔记-scrapy框架(1)
简介 什么是框架? 所谓的框,其实说白了就是一个[项目的半成品],该项目的半成品需要被集成了各种功能且具有较强的通用性. Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名, ...
- 爬虫基础分享Scrapy框架流程图与安装
从头开发一个爬虫程序是一项烦琐的工作,为了避免因制造轮子而消耗大量时间,在实际应用中我们可以选择使用一些优秀的爬虫框架,使用框架可以降低开发成本,提高程序质量,让我们能够专注于业务逻辑.所以,我们一起 ...
最新文章
- python函数模块讲解_课堂练习讲解_模块化函数封装
- linux内核源码剖析 博客,【Linux内存源码分析】页面迁移
- Anaconda安装第三方包(whl文件)
- 微软:今年要让Office 2007寿终正寝
- 输在学历的起跑线上?没关系,10本书助你技能爆表升职加薪
- 0和5(51Nod-1433)
- vue项目中npm install初始化报错以及‘cross-env’ 不是内部或外部命令问题
- mysql 事务 游标_mysql之——存储过程 + 游标 + 事务
- wos 文献被引_全世界最权威的文献检索工具,这6个检索技巧必须要掌握!
- 财务有必要学python吗-财务人要学Python吗?
- json转Java_在线JSON转Java实体类—在线工具
- 微信小程序 短信验证码
- 中国Linux界五大高手
- linux ntpdate同步错误,差一个小时的问题
- Material Design Lite组件之徽章
- Unity发布PC平台exe的窗口花样(WindowsAPI、捕获关闭事件、隐藏窗口标题栏、隐藏最小化最大化关闭按钮等等)
- 核心频率个加速频率_今年前 9 个月全工序实现负能炼钢,本钢板材炼钢厂绿色清洁生产频率加快...
- 如何查看win 10 无线密码
- 阿里专家直击前端盛会JSConf2017_Day2:见证Moment.js精彩分享
- 阅文JAVA后端笔试