python爬虫框架Scrapy采集数据,并制作词云图分析!
scrapy介绍
Scrapy 是一套基于Twisted、纯python实现的异步爬虫框架,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,相当的方便~
整体架构和组成
- Scrapy Engine(引擎)
引擎负责控制数据流在系统所有组件中的流动,并在相应动作发生时触发事件,是框架的核心。
- Scheduler(调度器)
调度器从引擎接受request并将他们入队,在引擎再次请求时将请求提供给引擎。
- Downloader(下载器)
下载器负责获取页面数据并提供给引擎,而后提供给spider。
- Spider(爬虫)
Spider是Scrapy用户编写用于分析response并提取item(即获取到item)或额外跟进的URL的类,定义了爬取的逻辑和网页内容的解析规则。 每个spider负责处理一个特定(或一些)网站。
- Item Pipeline(管道)
Item Pipeline负责处理被spider提取出来的item。典型的处理有清洗,验证及持久化(例如存取到数据库中)
- Downloader Middlewares(下载中间件)
下载器中间件是在引擎及下载器之间的特定钩子(specific hook),处理Downloader传递给引擎的response(也包括引擎传递给下载器的Request)。 其提供了一个简便的机制,通过插入自定义代码来扩展Scrapy功能。
- Spider Middlewares(Spider中间件)
Spider中间件是在引擎及Spider之间的特定钩子(specific hook),处理spider的输入(response)和输出(items及requests)。 其提供了一个简便的机制,通过插入自定义代码来扩展Scrapy功能。
安装
pip install scrapy
爬虫项目
准备工作
- 创建项目
scrapy startproject xingmingdq
- 新建爬虫
scrapy genspider xingming resgain.net/xmdq.html
这个时候,目录下会创建xingmingdq文件夹,文件夹下就是xingmingdq scrapy项目,spiders下有xingming爬虫文件。
建立item
items.py中添加以下代码:
class Xingming_Item(scrapy.Item):name = scrapy.Field()xingshi = scrapy.Field()xingshi_zh = scrapy.Field()
爬取名字
爬虫文件spiders/xingming.py书写网页解析规则。
# -*- coding: utf-8 -*- import scrapy from xingmingdq.items import Xingming_Itemclass XingmingSpider(scrapy.Spider):name = 'xingming'# allowed_domains = ['www.resgain.net/xmdq.html']start_urls = ['http://www.resgain.net/xmdq.html']def parse(self, response):content = response.xpath('//div[@class="col-xs-12"]/a/@href').extract()for i in content:page = 0href = 'http:' + ibase = href.split('/name')[0] + '/name_list_'while page < 10:url = base + str(page) + '.html'page += 1yield scrapy.Request(url, callback=self.parse_in_html)# 解析每一页def parse_in_html(self, response):person_info = response.xpath('//div[@class="col-xs-12"]/div[@class="btn btn-default btn-lg namelist"]/div[@style="margin-top: 20px;"]')xingshi_zh = response.xpath('//div[@class="navbar-header"]/a/div[@style="text-align: center;"]/text()').extract()[0].split('姓之家')[0]xingshi = response.url.split('/')[2].split('.')[0]for every_one in person_info:name = every_one.xpath('./text()').extract()[0]the_item = Xingming_Item()the_item['name'] = namethe_item['xingshi'] = xingshithe_item['xingshi_zh'] = xingshi_zhyield the_item
处理流程
pipelines.py中,编写结果写入文件的处理。
class XingmingdqPipeline(object):def __init__(self):self.fp = open('xingming.csv', 'w', encoding='utf-8')def process_item(self, item, spider):self.fp.write('%s,%s,%s\n' % (item['name'], item['xingshi_zh'], item['xingshi']))return itemdef close_spider(self, spider):self.fp.close()
设置参数
要想执行pipelines,需要在settings.py中进行配置,搜索USER_AGENT和ITEM_PIPELINES进行修改。
# 修改USER_AGENT USER_AGENT = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)' # 配置ITEM_PIPELINES ITEM_PIPELINES = {'xingmingdq.pipelines.XingmingdqPipeline': 300, }
执行爬虫
- 命令执行
scrapy crawl xingming
- 脚本执行
写入python文件,创建run.py,编辑下面代码,pycharm中运行。
import os os.system("scrapy crawl xingming")
结果文件
词云分析
在线词云生成网站: https://www.weiciyun.com/
导入爬取的姓名数据,分析出图:
哈哈哈,最多的竟然是 婷婷
找找有你的名字没有吧。
python爬虫框架Scrapy采集数据,并制作词云图分析!相关推荐
- 精通python爬虫框架-精通Python爬虫框架Scrapy.pdf
作 者 :(美)迪米特里奥斯·考奇斯·劳卡斯(Dimitrios Kouzis Loukas)著:李斌译 出版发行 : 北京:人民邮电出版社 , 2018.02 ISBN号 :978-7-115-47 ...
- 阅读《精通Python爬虫框架Scrapy》
精通Python爬虫框架Scrapy 精通Python爬虫框架Scrapy 2018年2月的书,居然代码用的是Python2 环境使用的是Vagrant,但是由于国内网络的问题,安装的太慢了. 书里内 ...
- python数据分析案例2-1:Python练习-Python爬虫框架Scrapy入门与实践
本文建立在学习完大壮老师视频Python最火爬虫框架Scrapy入门与实践,自己一步一步操作后做一个记录(建议跟我一样的新手都一步一步进行操作). 主要介绍: 1.scrapy框架简介.数据在框架内如 ...
- Python爬虫框架scrapy的用途及组件认识
Python爬虫框架scrapy的用途及组件认识 今天简述一下Scrapy框架的大致处理流程,以方便大家更好的理解Scrapy的运行过程. Scrapy是一个快速.高层次屏幕抓取和web抓取pytho ...
- python常用命令汇总-Python爬虫框架Scrapy常用命令总结
本文实例讲述了Python爬虫框架Scrapy常用命令.分享给大家供大家参考,具体如下: 在Scrapy中,工具命令分为两种,一种为全局命令,一种为项目命令. 全局命令不需要依靠Scrapy项目就可以 ...
- python处理数据集并制作词云图
python处理数据集并制作词云图 处理数据 使用自定义词典 去掉停用词 词频统计 绘制词云图+美化 1.处理数据 这里是老师给的新闻数据集,里面有5个类别的新闻数据,我以cars这一类为例. 将cs ...
- 用 Python 爬虫框架 Scrapy 爬取心目中的女神
From :http://www.cnblogs.com/wanghzh/p/5824181.html 本博文将带领你从入门到精通爬虫框架 Scrapy,最终具备爬取任何网页的数据的能力. 本文以校花 ...
- Python数据分析---回力评论关键字统计并制作词云图
背景 想起前天爬虫拿回来的数据好像没怎么用,看了一下1000条评论有3w4千多字,然后今天决定对爬回来的回力帆布鞋的评论进行数据分析,把评论里面的关键字关键词统计出来并且制作词云图 一.思路 既然要统 ...
- 数据采集与存储案例——基于Python爬虫框架Scrapy的爬取网络数据与MySQL数据持久化
此案例需要预先安装pymsql python3.7.4 scrapy2.7.1 一.安装scrapy框架 1.使用pip命令安装scrapy pip install scrapy 在这里下载太慢可以使 ...
最新文章
- PHP读取EXCEL
- python 并行计算 opencv_opencv-python计算影像
- 阿里工程师如何叫外卖?99%的人猜不到
- UVA dp题目汇总
- php 修改文件所有者,PHP 改变文件的所有者
- springbootredis连接池配置优化_spring boot rest 接口集成 spring security(2) – JWT配置
- 解决windows10 9926版本中无法访问samba的方法
- ImportError: libcudart.so.10.0: cannot open shared object file
- 低烟无卤计算机电缆,驻马店DZRDJYPV低烟无卤计算机电缆
- vista任务管理器_为什么我的Windows Vista资源管理器发送到菜单挂起或打开缓慢?...
- 《Linux就是这种范儿》读后感
- UIkit之滚动监听+动画特效
- 旁注攻击和CDN,绕过cdn找真实IP
- Linux如何检查是否支持SNI,WDCP下的纯Nginx支持多域名ssl证书(TLS SNI support disabled)解决方案...
- Log4j的基本应用
- Matlab的plot~各种颜色和线形
- 微信小程序:“去中心化”的社交电商,电商正转向以商品为核心
- JavaScript和Node.js的关系
- 去哪儿网查不到历史订单_12306网站上超过30天的历史订单去哪儿找纪录?
- linux文字命令窗口怎样截图,命令行中截图的小工具 - Linux就该这么学的个人空间 - OSCHINA - 中文开源技术交流社区...