python如何安装scrapy库_Python爬虫:Scrapy框架的安装和基本使用
大家好,本篇文章我们来看一下强大的Python爬虫框架Scrapy。Scrapy是一个使用简单,功能强大的异步爬虫框架,我们先来看看他的安装。
Scrapy的安装
Scrapy的安装是很麻烦的,对于一些想使用Scrapy的人来说,它的安装常常就让很多人死在半路。在此我将我的安装过程和网络上整理的安装方法,分享给大家,希望大家能够安装顺利。如果你在学习Python的过程中遇见了很多疑问和难题,可以加-q-u-n 227 -435-450里面有软件视频资料免费
Windows安装
开始之前,我们要确定自己安装了Python,本篇文章我们以Python3.5为例。Scrapy有很多依赖的包,我们来一一安装。
首先,使用pip -v,查看pip是否安装正常,如果正常,那么我们进行下一步;
pip install wheel这个包我们之前的文章介绍过,安装好他我们就可以安装一些wheel件;
lxml安装,之前的文章说过他的安装,那么我们这里在重新整理一下。whl文件地址:here。找到自己对应版本的文件,下载好后,找到文件位置,右键点击文件属性,点击安全标签,复制他的所在路径。打开管理员工具(cmd),pip install ;
PyOpenssl 的whl文件地址:here。点击下载,whl文件安装方式同上;
Twisted框架这个框架是一个异步网络库,是Scrapy的核心。whl文件地址:here;
Pywin32这是一个Pywin32兼容的库,下载地址:here,选好版本进行下载;
如果上面的库全都安装好了,那么我们就可以安装我们的Scrapy了,pip install scrapy
是不是很麻烦呢,如果大家不喜欢折腾,那么在Windows下也可以很方便的安装。那就要使用我们之前提到的Anaconda了。具体安装大家自己找找,或者在之前的文章中找。那么他的安装Scrapy只需要一行:
conda install scrapy
Linux安装
Linux系统安装起来就要简单一点:
sudo apt-get install build-essential python3-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev zlib1g-dev
Mac OS安装
我们需要先安装一些C++的依赖库,xcode-select --install
需要安装命令行开发工具,我们点击安装。安装完成,那么依赖库也就安装完成了。
然后我们直接使用pip安装pip install scrapy
以上,我们的Scrapy库的安装基本上就解决了。
Scrapy的基本使用
Scrapy的中文文档地址:here
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。
他的基本项目流程为:
创建一个Scrapy项目
定义提取的Item
编写爬取网站的spider并提取Item
编写Item Pipeline来存储提取到的Item(即数据)
而一般我们的爬虫流程为:
抓取索引页:请求索引页的URL并得到源代码,进行下一步分析;
获取内容和下一页链接:分析源代码,提取索引页数据,并且获取下一页链接,进行下一步抓取;
翻页爬取:请求下一页信息,分析内容并请求在下一页链接;
保存爬取结果:将爬取结果保存为特定格式和文本,或者保存数据库。
我们一步一步来看看如何使用。
创建项目
在开始爬取之前,您必须创建一个新的Scrapy项目。 进入您打算存储代码的目录中,运行下列命令(以知乎日报为例):
scrapy startproject zhihurb
该命令将会创建包含下列内容的 zhihu 目录:
zhihurb/
scrapy.cfg
zhihurb/
__init__.py
items.py
pipelines.py
settings.py
spiders/
__init__.py
...
这些文件分别是:
scrapy.cfg: 项目的配置文件zhihurb/: 该项目的python模块。之后您将在此加入代码。zhihurb/items.py: 项目中的item文件.zhihurb/pipelines.py: 项目中的pipelines文件.zhihurb/settings.py: 项目的设置文件.zhihurb/spiders/: 放置spider代码的目录.
定义Item
这一步是定义我们需要获取到的数据信息,比如我们需要获得网站里的一些url,网站文章的内容,文章的作者等。这一步定义的地方就在我们的items.py文件。
import scrapy
class ZhihuItem(scrapy.Item):
name = scrapy.Field()
article = scrapy.Field()
编写Spider
这一步就是写我们最熟悉的爬虫了,而我们的Scrapy框架可以让我们不需要去考虑实现的方法,只需要写出爬取的逻辑就可以了。
首先我们需要在 spiders/ 文件夹下创建我们的爬虫文件,比如就叫spider.py。写爬虫前,我们需要先定义一些内容。我们以知乎日报为例:https://daily.zhihu.com/
from scrapy import Spider
class ZhihuSpider(Spider):
name = "zhihu"
allowed_domains = ["zhihu.com"]
start_urls = ['https://daily.zhihu.com/']
这里我们定义了什么呢?首先我们导入了Scrapy的Spider组件。然后创建一个爬虫类,在类里我们定义了我们的爬虫名称:zhihu(注意:爬虫名称独一无二的,是不可以和别的爬虫重复的)。还定义了一个网址范围,和一个起始 url 列表,说明起始 url 可以是多个。
然后我们定义一个解析函数:
def parse(self, response):
print(response.text)
我们直接打印一下,看看这个解析函数是什么。
运行爬虫
scrapy crawl zhihu
由于Scrapy是不支持在IDE中执行,所以我们必须在命令行里执行命令,我们要确定是不是cd到爬虫目录下。然后执行,这里的命令顾名思义,crawl是蜘蛛的意思,zhihu就是我们定义的爬虫名称了。
查看输出,我们先看到的是一些爬虫类的输出,可以看到输出的log中包含定义在 start_urls 的初始URL,并且与spider中是一一对应的。我们接着可以看到打印出了网页源代码。可是我们似乎并没有做什么,就得到了网页的源码,这是Scrapy比较方便的一点。
提取数据
接着就可以使用解析工具解析源码,拿到数据了。
由于Scrapy内置了CSS和xpath选择器,而我们虽然可以使用Beautifulsoup,但是BeautifulSoup的缺点就是慢,这不符合我们Scrapy的风格,所有我还是建议大家使用CSS或者Xpath。
由于之前我并没有写过关于Xpath或者CSS选择器的用法,那么首先这个并不难,而且熟悉浏览器的用法,可以很简单的掌握他们。
我们以提取知乎日报里的文章url为例:
from scrapy import Request
def parse(self, response):
urls = response.xpath('//div[@class="box"]/a/@href').extract()
for url in urls:
yield Request(url, callback=self.parse_url)
这里我们使用xpath解析出所有的url(extract()是获得所有URL集合,extract_first()是获得第一个)。然后将url利用yield语法糖,回调函数给下一个解析url的函数。
使用item
后面详细的组件使用留在下一章讲解,这里假如我们解析出了文章内容和标题,我们要将提取的数据保存到item容器。
Item对象相当于是自定义的python字典。 您可以使用标准的字典语法来获取到其每个字段的值。(字段即是我们之前用Field赋值的属性)。
假如我们下一个解析函数解析出了数据
def parse_url(self, response):
# name = xxxx
# article = xxxx
# 保存
item = DmozItem()
item['name'] = name
item['article'] = article
# 返回item
yield item
保存爬取到的数据
这里我们需要在管道文件pipelines.py里去操作数据,比如我们要将这些数据的文章标题只保留 5 个字,然后保存在文本里。或者我们要将数据保存到数据库里,这些都是在管道文件里面操作。我们后面在详细讲解。
那么最简单的存储方法是使用命令行命令:
scrapy crawl zhihu -o items.json
这条命令就会完成我们的数据保存在根目录的json文件里,我们还可以将他格式保存为msv,pickle等。改变命令后面的格式就可以了。
python如何安装scrapy库_Python爬虫:Scrapy框架的安装和基本使用相关推荐
- python scrapy 入门_Python爬虫Scrapy入门看这篇就够了
一.初窥scrapy scrapy中文文档: http://scrapy-chs.readthedocs.io/zh_CN/latest/ Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应 ...
- python爬虫requests库_python爬虫使用Requests库 - pytorch中文网
在入门教程中我们介绍了urllib库和urllib2的用法,同时我们了解一些爬虫的基础以及对爬虫有了基本的了解.其实在我们生产环境中,使用Request库更加方便与实用,同时我们这需要短短的几行代码就 ...
- python图形界面编程库_Python支持哪些图形界面的第三方库
Python支持哪些图形界面的第三方库 发布时间:2020-11-09 10:37:56 来源:亿速云 阅读:58 作者:小新 这篇文章给大家分享的是有关Python支持哪些图形界面的第三方库的内容. ...
- python爬虫scrapy安装_Python爬虫:Scrapy框架的安装和基本使用
大家好,本篇文章我们来看一下强大的Python爬虫框架Scrapy.Scrapy是一个使用简单,功能强大的异步爬虫框架,我们先来看看他的安装. Scrapy的安装 Scrapy的安装是很麻烦的,对于一 ...
- python 定时自动爬取_python实现scrapy爬虫每天定时抓取数据的示例代码
1. 前言. 1.1. 需求背景. 每天抓取的是同一份商品的数据,用来做趋势分析. 要求每天都需要抓一份,也仅限抓取一份数据. 但是整个爬取数据的过程在时间上并不确定,受本地网络,代理速度,抓取数据量 ...
- python cookie池_Python爬虫scrapy框架Cookie池(微博Cookie池)的使用
下载代码Cookie池(这里主要是微博登录,也可以自己配置置其他的站点网址) 下载代码GitHub:https://github.com/Python3WebSpider/CookiesPool 下载 ...
- python定时爬取数据_python实现scrapy爬虫每天定时抓取数据的示例代码
1. 前言. 1.1. 需求背景. 每天抓取的是同一份商品的数据,用来做趋势分析. 要求每天都需要抓一份,也仅限抓取一份数据. 但是整个爬取数据的过程在时间上并不确定,受本地网络,代理速度,抓取数据量 ...
- 【入门级教程】python使用scrapy库实现爬虫
文章目录 搭建scrapy项目 安装scrapy 构造scrapy框架 构建一个爬虫 分析网页 观察网页源代码 学习网页结构(了解可以跳过) 学习网页表格(了解可以跳过) 学习XPath语法(了解可以 ...
- python scrapy爬虫视频_python爬虫scrapy框架的梨视频案例解析
之前我们使用lxml对梨视频网站中的视频进行了下载 下面我用scrapy框架对梨视频网站中的视频标题和视频页中对视频的描述进行爬取 分析:我们要爬取的内容并不在同一个页面,视频描述内容需要我们点开视频 ...
- python爬虫模块_Python爬虫 --- Scrapy爬取IT桔子网
目标: 此次爬取主要是针对IT桔子网的事件信息模块,然后把爬取的数据存储到mysql数据库中. 目标分析: 通过浏览器浏览发现事件模块需要登录才能访问,因此我们需要先登录,抓取登录接口: 可以看到桔子 ...
最新文章
- php 预订义变量,预约义变量 PHP
- Netflix这公司居然没有运维,也没有CTO
- 加快Tensorflow和Keras图像数据集的训练速度
- 如何计算空中四个点是不是在一个平面上
- Android最佳的开源库(四)
- 大盘点|卷积神经网络必读的 100 篇经典论文,包含检测 / 识别 / 分类 / 分割多个领域
- 见与不见 ---仓央嘉措
- android 一个有漂亮动画效果的Dialog
- 在线学习在爱奇艺信息流推荐业务中的探索与实践
- 数论练习1 ( 曹冲养猪 + [POJ 2891]Strange Way to Express Integers + 乘法逆元【带证明】)
- 转:RabbitMQ 消息队列特性知多少
- 第七节:利用CancellationTokenSource实现任务取消和利用CancellationToken类检测取消异常。
- php 公众号验证回调方法_如何进行公众号文章收集 两种收集方法详解
- js 函数实参列表arguments和形参的那点事儿
- 数据库笔记01:SQL Server系统概述
- readline函数重新定位到第一行_学习MATCH函数3种匹配方式,轻松确定数据位置和数量...
- mysql 分割后循环,mysql实现字符串分割SPLIT函数的四种方法
- 计算机网卡接口,5.8.1 计算机网卡(1)
- TrueCrypt 使用经验[3]:关于加密
- 2019-3-8-win10-uwp-一张图说明水平对齐和垂直对齐