前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Scrapy爬虫自学笔记(一)

Scrapy爬虫自学笔记(一)

作者头像
努力在北京混出人样
发布2019-02-18 17:40:38
5340
发布2019-02-18 17:40:38
举报
文章被收录于专栏:祥子的故事祥子的故事

基础

1、新建scarpy项目 打开cmd,切换到工作目录中

切换到工作目录
切换到工作目录

新建项目,命名为tutorial

代码语言:javascript
复制
scrapy startproject tutorial
新建项目
新建项目

2、创建新的爬虫任务

代码语言:javascript
复制
scrapy genspider example example.com

这里指的是爬取网站example.com,并将项目命名为example

任务代码展示
任务代码展示

3、写取数逻辑 以爬取quotes.toscrape.com为例,新建任务脚本quotes_spider.py, 逻辑写在quotes_spider.py 中。如提取网页内容:

逻辑代码
逻辑代码

4、运行

打开cmd,切换到该项目下,运行:

代码语言:javascript
复制
scrapy crawl quotes_spider
运行项目
运行项目

5、shell 提取数据 使用shell是为了帮助我们更好的利用xpath和css来获取数据。

shell
shell

注意:必须使用双引号

css

css
css

添加:: text , 是为了获取到<title>中的文本内容,extract() 用户提取数据

提取第一个结果或者结果

方式一

代码语言:javascript
复制
response.css('title::text').extract_first()

方式二

代码语言:javascript
复制
response.css('title::text')[0].extract()
代码语言:javascript
复制
注意:使用 **.extract_first()**  可以避免没有值的时候返回 **IndexError** 错误,同时返回 **None** 

方式三

采用正则化提取,re()

正则化
正则化

xpath

使用xpath提取数据

xpath
xpath

完整的代码

将上面使用css或xpath处理的逻辑写入脚本,代码如下:

完整的代码
完整的代码

数据存储

以存为json为例

存数据
存数据

获取下一页

代码语言:javascript
复制
<ul class="pager">
    <li class="next">
        <a href="/page/2/">Next <span aria-hidden="true">&rarr;</span></a>
    </li>
</ul>
下一页
下一页

方式一:绝对链接

response.urljoin是将两个拼接起来,构成完整的链接

绝对路径
绝对路径

方式二:相对链接

response.follow 支持相对链接方式

相对路径
相对路径
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年05月31日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基础
  • css
    • 方式一
      • 方式二
        • 方式三
        • xpath
        • 完整的代码
          • 数据存储
          • 获取下一页
            • 方式一:绝对链接
              • 方式二:相对链接
              相关产品与服务
              数据保险箱
              数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档