4 Scrapy框架的安装

什么是Scrapy框架

Scrapy是一个python爬虫框架,非常适合做一些大型的爬虫项目,并且开发者利用这个框架,不用过多的关注细节,我们重点说这个框架
Scrapy的官网地址是:http:scrapy.org/

安装Scrapy框架即各种常见错误解决技巧
少坑版安装方式

由于Scrapy涉及太多的依赖库,再次,如果想省事的朋友可以采用这种方式来安装。
如果想了解具体过程的朋友,可以先安装 pip install scrapy 然后遇到错误按照后面的方式解决。
接下来介绍少坑版安装方式

0开个vpn或者采用本地安装方式
1首先,升级pip    python -m pip install --upgrade pip
2安装visual studio 2015专业版 去http://download.microsoft.com/download/B/8/9/B898E46E-CBAE-4045-A8E2-2D33DD36F3C4/vs2015.pro_chs.iso下载
3安装lxml   去http://www.lfd.uci.edu/~gohlke/pythonlibs/ 找"lxml-"  pip install wheel、pip install lxml-4.3.3-cp37-cp37m-win_amd64.whl(可能需要:pip install Twisted-18.9.0-cp37-cp37m-win_amd64.whl)
4pip install scrapy 或者pip install scrapy==1.1.0rc3
常见错误与解决

我的操作:

1升级pip python -m pip install --upgrade pip

2pip install scrapy

spyder 如何安装biopython_python


没有visual studio 或者visual studio 版本不够高,所以我安装了一下visual studio 2015专业版。然后很顺利的进行了,然后倒在了判断scrapy 安装成功上面。

遇到问题:Fatal error in launcher:

解决方法:Fatal error in launcher: Unable to create process using ‘"’–解决scrapy创建项目时报错

运行代码:
python3 -m scrapy startproject weisuen

成功了!!!

如何判断scrapy 安装成功?
scrapy startproject weisuen
作业

作业:把scrapy安装好,然后将成功截图通过http://task.iqianyue.com提交给老师。

先声明一下,办公室用的是台式机,寝室用的是笔记本电脑,目前两台电脑都安装scrapy成功,但是台式机前面需要加上python3 -m,我记录了台式机的失败案例以及相应的处理方法,并将笔记本的成功案例展现出来。

Scrapy框架实践

1 Scrapy框架常见命令实战

这部分先介绍一下命令的作用,不求甚解,之后第一个爬虫项目的时候就需要理解了,先学习了解下命令。

打开cmd,然后输入scrapy -h(查看当前scrapy有哪些命令)笔记本是ok的,不需要改编代码。
台式机失败了,改变代码,python3 -m scrapy -h,ok。

spyder 如何安装biopython_ide_02


bench Run quick benchmark test(测试命令)

fetch Fetch a URL using the Scrapy downloader(爬一个网页)

genspider Generate new spider using pre-defined templates

runspider Run a self-contained spider (without creating a project)(运行一个爬虫)

settings Get settings values

shell Interactive scraping console

startproject Create new project

version Print Scrapy version

view Open URL in browser, as seen by Scrapy

scrapy包括全局命令(任何地方也可以使用)和项目命令(项目内可以使用)
上图中展开的是全局命令,接下来一一解释:

fetch命令 (爬一个网页) 查看对应网站爬取的过程
不用依赖爬虫项目,就可以爬一个网页,而且可以显示爬虫的过程

scrapy命令使用方式scrapy 命令名 参数 比如说scrapy fetch -h(查看fetch的命令相关使用方式,遇到不懂的命令可以这样查找使用方式)
台式机:由于我下载了两种python,为了避免错误,我需要在代码前面加上python3 -m,之后不再重复介绍,

scrapy fetch -h              #笔记本

python3 -m scrapy fetch -h   #台式机

spyder 如何安装biopython_python_03


我们可以查看以下参数,比如说

–spider=SPIDER 我们可以使用这个参数指定spider(爬虫)

–headers 我们可以使用这个参数指定headers

–nolog 在爬的时候会出现很多的中间日志信息,不想显示日志信息可以加上这个参数。

例:爬取一个页面

scrapy fetch https://www.baidu.com/                     #笔记本
python3 -m scrapy fetch https://www.baidu.com/  #台式机

笔记本上面成功了,

spyder 如何安装biopython_python_04


台式机出现错误:ModuleNotFoundError: No module named ‘win32api’

处理:安装pywin32

下载https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/pywin32-221.win-amd64-py3.7.exe

下载安装后再在命令控制台输入python3 -m scrapy crawl demo 台式机的错误暂未解决

我最后重新安装了一次scrapy 安装在Anaconda3文件下,
这次和笔记本一样,不需要python3 -m了 也成功创建爬虫项目和爬去文件了

我又贼心不死地取重新安装在python37文件夹下,然而和以前一样,需要python3 -m .没弄懂这个现象原理,这个问题暂时解决不了,继续学习,之后回来再看。

不出现日志信息的爬取代码,如下:

scrapy fetch https://www.baidu.com/   --nolog

展示一下有没有nolog的区别,作用就是减少日志信息。

spyder 如何安装biopython_爬虫项目_05


spyder 如何安装biopython_ide_06

scrapy fetch https://www.hellobi.com

spyder 如何安装biopython_python_07


总感觉有了查看源代码的效果,视频里面没有这么说,先继续把

第二个命令 runspider命令 (运行一个爬虫
不依托爬虫项目,运行一个爬虫

scrapy runspider first.py

运行出错,应该进入爬虫文件的目录

spyder 如何安装biopython_python_08


运行成功,注意 Spider是大写,否则运行出错

from scrapy.spiders import Spider

class FirstSpider(Spider):

spyder 如何安装biopython_python_09

#建立一个爬虫文件first
import scrapy
from scrapy.spiders import Spider #导入scrapy里面spiders的spider
class FirstSpider(Spider):#创建一个爬虫类  爬虫名+spider
    name="first"#爬虫文件里面的属性,设置爬虫的名字
    allowed_domains=["baidu.com"]#允许的域名
    start_urls=["http://www.baidu.com",]#起始的地址
    def parse(self,response):#回调方法  运行的时候会运行这个
        pass  #pass 不执行  就是占个位置
爬虫项目和爬虫文件的关系

一个系统里面有多个爬虫项目,一个爬虫项目包括多个爬虫文件。
scrapy框架主要是做爬虫项目的
之前学的urllib主要是爬虫文件。

shell命令:爬去一个网站,进入交互终端,进行相应的测试

shell命令可以打开scrapy的交互终端,在开发和调试的时候用到,不启动scrapy爬虫的条件下对网站进行调试,也可以在交互终端里面写一些python测试,可以用在测试的时候。

scrapy shell https://www.baidu.com/ --nolog

交互终端形态:

spyder 如何安装biopython_爬虫项目_10


in[1]这里可以输入python代码,也可以输入Scrapy代码,exit()退出交互终端

startproject命令:直接创建某一个爬虫项目
scrapy startproject -h
scrapy startproject first

spyder 如何安装biopython_ide_11


spyder 如何安装biopython_ide_12


project_name:爬虫项目名

version命令:查看对应的版本信息
scrapy version
view命令:下载某个网页并用浏览器查看
scrapy view http://news.163.com --nolog

成功了,不过由于没有默认浏览器,所以我点了浏览器打开了

settings命令:看一些配置信息

上面全局命令讲完了,接下来将项目命令

scrapy -h

查看所有项目命令,包括全局和项目命令

spyder 如何安装biopython_爬虫项目_13


bench Run quick benchmark test

check Check spider contracts

crawl Run a spider

edit Edit spider

fetch Fetch a URL using the Scrapy downloader

genspider Generate new spider using pre-defined templates

list List available spiders

parse Parse URL (using its spider) and print the results

runspider Run a self-contained spider (without creating a project)

settings Get settings values

shell Interactive scraping console

startproject Create new project

version Print Scrapy version

view Open URL in browser, as seen by Scrapy

bench命令:测试本地硬件的性能,使用该命令时,我们会创建一个本地服务器,并且以最大的速率去爬取网页,为了避免网速其他的影响,所以只爬取网址,不爬取内容

进first项目:cd .\first

spyder 如何安装biopython_ide_14

scrapy bench

spyder 如何安装biopython_爬虫项目_15


每分钟爬取多少个网页

genspider命令:创建爬虫项目之后时没有爬虫的,这个命令可以创建爬虫项目里面的爬虫

初始状态

spyder 如何安装biopython_爬虫项目_16


spyder 如何安装biopython_python_17


spyder 如何安装biopython_ide_18

scrapy genspider -l

spyder 如何安装biopython_爬虫项目_19


https://www.baidu.com/baidu.com 域名

https协议名

www主机名

爬取名为weisuen域名为baidu.com的爬虫文件

scrapy genspider -t basic weisuen baidu.com

spyder 如何安装biopython_爬虫项目_20

check命令:测试命令
scrapy check weisuen

spyder 如何安装biopython_python_21

crawl命令:运行爬虫(出现最多)
scrapy crawl weisuen

spyder 如何安装biopython_python_22

list命令:展示当前可以使用的爬虫文件
scrapy list

spyder 如何安装biopython_爬虫项目_23

edit命令:windows里面无法运行,linux可以运行,直接通过编辑器打开爬虫文件
scrapy edit weisuen

spyder 如何安装biopython_python_24

parse命令:获取指令url网址,进行相应的处理分析。
scrapy parse https://www.baidu.com/   --nolog

spyder 如何安装biopython_ide_25


这部分重点掌握startproject创建爬虫项目和craw运行爬虫

2第一个Scrapy爬虫

Xpath表达式(运行效率比正则表达式快)

/标签 从顶端开始寻找某个标签
text() 可以提取对应的标签文本内容
@ 可以提取对应的标签属性值内容
// 寻找所有的标签

//标签[@属性=值]
//li[@class="hidden-xs"]/a/@href

<a href="ssss">jsjhhu</a>
<标签 属性="属性值">文本信息</标签>

eg:/html 从顶端开始寻找某个html
/html/head/title/text()
pycharm的安装

建议安装专业版,不过我已经安装过了,是社区版。专业版的解锁可以进入cmd 设置data=2999.12.1 然后进入专业版使用30天 然后把data 转回现在的时间 。或者在网上找别的注册码也行。

pycharm有利于项目的管理

spyder 如何安装biopython_python_26

首先设置 items文件,设置我们爬取的目标

然后设置pipeline文件,设置后续的处理

然后设置settings,设置对应的配置信息

最后编写爬虫spiders

spyder 如何安装biopython_爬虫项目_27


spyder 如何安装biopython_爬虫项目_28


spyder 如何安装biopython_爬虫项目_29

spyder 如何安装biopython_python_30


查看xpath的方法 按F12,打开Elements标签 找要爬的东西 然后右键 cope/cope xpath

scrapy crawl weisuen

spyder 如何安装biopython_ide_31


成功了