scrapy入门

5 篇文章 0 订阅
4 篇文章 0 订阅

笔者python版本为3.5.2

1、首先使用pip3安装scrapy:

 

pip3 install scrapy


如果出现缺少库依赖的可以上网查一查安转相应的库依赖

 

测试安装成功:

输入 scrapy  会出现 scrapy的指令参数提示等内容

2、创建一个scrapy项目

 

scrapy startproject Demo


此时会创建一的Demo目录,进入后有一个Demo目录和一个scrapy.cfg的配置文件

 

进入Demo,有一系列文件,爬虫是需要写在spider目录里面

3、创建一个爬虫文件

 

scrapy genspider spider "www.baidu.com"

 

 

创建爬虫的指令是 scrapy genspider [options] <name> <domain>

我们创建的名字是spider  域是www.baidu.com 这个域限定了爬虫的网页范围,一旦离开这个域的网页就不会发送请求

爬虫的名字很重要,执行爬虫是依赖名字执行 而不是依赖爬虫文件名执行

 

4、写爬虫文件

$ vim spider.py

在parse函数中写入爬虫代码,这里为了简单示范只打印网页源代码

 

def parse(self, response):
    print( response.body )


5、运行爬虫:

 

 

scrapy crawl spider


注意:

 

1.上面也提到了 运行爬虫依赖的是爬虫的名字, 而不是文件 所以运行的时候  是spider而不是spider.py

查看爬虫源代码(spider.py) 可以看见这个类指定了三个属性 name,start_urls,allowed_domains

name 也就是爬虫的名字,很重要,不可重复不可缺少

allowed_domains即上面提到了爬虫的域,限定爬取范围 非必须,可以不写

start_urls 爬虫的起始网页,不可缺少

2. 直接执行应该是爬去不到任何东西的,原因是在上级目录中有个settings.py文件

打开这个文件跳转到第22行  把这行注释掉  或者值改为False

这句话是干什么的呢?看上一行,遵循网页爬虫规则,网页爬虫规则是什么?不用想很多都有禁止爬虫的,所以不要遵循

3.不知道什么原因,打印的内容很少,只有一段,可能与百度的网页代码获取方式有关,也可能是反爬虫了的原因,

所以我又使用了我学校的一个简单网页做了测试,

打印的结果中出现了很多\xe7\x99\xbe\xe5\xba\xa6\xe4\xb8 这种字符,应该是编码格式的问题 ,

python3的是unicode,这个应该是utf-8,如果你也出现了这样的问题,可以修改解码的方式来解决这个问题

 

response.body.decode("utf-8")


4.执行爬虫可以在这个项目的任何位置执行,并不一定要在爬虫所在的文件夹下执行,

 

scrapy框架的指令都是以scrapy开头的,参数有哪些 可以直接输入scrapy查看 

比如 crawl就是执行一个爬虫,list就是显示当前项目下有多少个爬虫, genspider就是创建一个爬虫文件。

 

文章后面会继续更新,包括介绍setting.py里面一些代码的意义,项目下面文件的意义等。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值