scarpy框架的初级使用

本文介绍了使用Scrapy框架创建和运行爬虫的基本步骤,以爬取链家二手房信息为例,详细讲解了allowed_domains、start_urls的设置,XPath的使用以及分页操作。此外,还提到了如何将数据传递到pipelines进行处理,并在settings中配置日志级别和日志文件。
摘要由CSDN通过智能技术生成

1、创建爬虫项目

  1. 进入到你向放置项目的文件夹
  2. 按住shift点击右键,选择在此处打开power shell窗口
  3. 在命令行中创建爬虫项目: scrapy startproject 项目名
  4. 按照提示进入项目文件夹:cd 爬虫文件夹
  5. 创建爬虫文件:scrapy genspider 爬虫文件名 爬取的域名

2、打开爬虫项目

1、用pycharm打开项目
2、打开之后是这样的

在这里插入图片描述

3、编写爬虫,以爬取链家二手房信息为例

在这里插入图片描述
1、name属性一般不需要改,生成时自动带的
2、要改的是allowed_domains属性和start_urls属性。其作用见上图。
注意这俩货是列表形式的,不要写成字符串或其他形式
在爬取不同域名的接口时,一定要在allowed_domains属性里加上接口的域名,否则访问不到
3、在这里插入图片描述
parse是第一个接受返回信息的方法,可以在里面获取一些信息,比如:列表的链接、总页数等信息。这些都可以用xpath语法获取,scrapy框架对xpath语法的支持很棒哒。
4、用xpath获取信息
在这里插入图片描述
在这里插入图片描述
xpath语法可以百度,也可以使用谷歌浏览器的xpath插件学习,很容易上手。比起bs4不知道容易多少。
注意:如果想先获取某个节点,再用for循环获取里面节点的值,那么不需要再response.xpath()后面加东西;
如果想要获取文本信息的列表,则需要使用response.xpath().extract(),
如果想要获取单个文本信息时,则需要使用response.xpath().extract_first(),
5、将获取到的信息传到pipelines(最好不要在爬虫文件里对获取到的数据进行操作)
在这里插入图片描述
只需要一个yield item,就可以将保存信息的item传到pipeline中
6、分页操作
在获取信息时,需要有分页操作,这可是获取信息的重要步骤。
在这里插入图片描述
分页时可以根据具体情况构造出不同的下一页地址,要注意网站获取信息的方式是否是用Ajax传值的。
上图中使用了deepcopy,它的作用可以百度。
本例中的callback参数就是本身的方法名,要注意callback的参数是没有()的

在本例中,获取信息和翻页都是在一个方法中——parse_list2(),例子比较简单,就只获取了列表中部分信息。
在这里插入图片描述
7、将保存信息的item传到pipelines,下面介绍pipeline中的操作
在这里插入图片描述管道的操作基本就是对数据的一些处理,比如:保存入库。
写完管道后,需要在settings中设置一下(就是把注释去掉)
在这里插入图片描述
当有多个管道时,也需要把管道按上面的格式写入其中。后面的数值表示优先级,数越小,优先级越高。管道比较多时,可以在其中的方法中添加判断爬虫的条件:if spider.爬虫名==‘当前管道处理的爬虫’,这样就可以把爬虫交给合适的管道类了。

4、setting中的一些设置

1、屏蔽一些输出
在setting中添加以下语句,可以只看到报错信息和你写的输出信息。如果不加,将会显示很多debug信息。一般获取不到数据的时候,可以将其注释掉来找debug的信息。
LOG_LEVEL = ‘WARNING’
2、将报错信息写进日志文件
添加一下语句
LOG_FILE = ‘./log.log’
将报错信息写进日志文件,就不用盯着终端看了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值