美文网首页
scrapy学习记录(未完待续)

scrapy学习记录(未完待续)

作者: 小透明苞谷 | 来源:发表于2017-12-03 14:26 被阅读0次

最重要的官方文档

新建项目:scrapy startproject +项目名
新建爬虫:cd 项目名 后 scrapy genspider +爬虫文件名+爬取的域名
shell交互界面:scrapy shell +网址
运行爬虫:scrapy crawl + 爬虫文件(无后缀)
运行爬虫并保存输出文件:scrapy crawl + 爬虫文件(无后缀)-o 输出文件名(.json/.jl/.csv/.xml/.pickle/.marshal)
各个文件的作用

禁止ROBOTSTXT_OBEY

打开settings.py文件,将ROBOTSTXT_OBEY修改为False

它默认为True,就是要遵守robots.txt 的规则,那么 robots.txt 是个什么东西呢?
通俗来说, robots.txt 是遵循 Robot 协议的一个文件,它保存在网站的服务器中,它的作用是,告诉搜索引擎爬虫,本网站哪些目录下的网页 不希望 你进行爬取收录。在Scrapy启动后,会在第一时间访问网站的 robots.txt 文件,然后决定该网站的爬取范围。

当然,我们并不是在做搜索引擎,而且在某些情况下我们想要获取的内容恰恰是被 robots.txt 所禁止访问的。所以,某些时候,我们就要将此配置项设置为 False ,拒绝遵守 Robot协议 !

所以在这里设置为False。当然可能本次爬取不一定会被它限制,但是我们一般来说会首先选择禁止它。

注意:

start_urls

爬虫启动后运行的url,Scrapy为爬虫的 start_urls属性中的每个URL创建了一个 scrapy.http.Request 对象 ,并将爬虫的parse 方法指定为回调函数。然后,这些 Request被调度并执行,之后通过parse()方法返回scrapy.http.Response对象,并反馈给爬虫。

回调函数

需要哪个函数来处理这个返回值,就调用哪个函数,返回值会以参数的形式传递给你所调用的函数。

Selectors

在Scrapy里面,Selectors 有四种基础的方法:

  • xpath():返回一系列的selectors,每一个select表示一个xpath参数表达式选择的节点
  • css():返回一系列的selectors,每一个select表示一个css参数表达式选择的节点
  • extract():返回一个unicode字符串,为选中的数据
  • re():返回一串一个unicode字符串,为使用正则表达式抓取出来的内容

yield item:将存储下来的item交由后续的pipelines处理

pipelines

pipelines主要用于数据的进一步处理,比如类型转换、存储入数据库、写到本地等。
pipelines是在每次spider中yield item 之后调用,用于处理每一个单独的item。

import json

class NjuptPipeline(object):
    def __init__(self):
        self.file = open('njupt.txt',mode='wb')
    def process_item(self, item, spider):
        self.file.write(item['news_title'].encode("GBK"))
        self.file.write("\n")
        self.file.write(item['news_date'].encode("GBK"))
        self.file.write("\n")
        self.file.write(item['news_url'].encode("GBK"))
        self.file.write("\n")
        return item

记得修改settings文件,pipelines才能生效


settings文件

反反爬措施

加请求头

修改settings文件


默认无请求头
修改后

相关文章

  • scrapy学习记录(未完待续)

    最重要的官方文档 新建项目:scrapy startproject +项目名 新建爬虫:cd 项目名 后 sc...

  • scrapy学习记录

    scrapy源码 scrapy架构 Engine 引擎,处理整个系统的数据流处理、触发事务,是整个框架的核心 It...

  • Mac 安装Scrapy

    刚学习完Python,准备使用Scrapy练习爬虫。记录一下,在Mac环境下安装Scrapy的步骤及初始工程。 打...

  • Scrapy学习记录2

    标签: 信息检索 1. 创建一个Scrapy项目 2. 定义提取的Item 3. 编写爬取网站的 spider 并...

  • Scrapy爬虫学习记录

    昨天休息的时候偶然发现了一个的球鞋网站,上面有很多关于球鞋的资讯。于是,决定现学现卖,学习scrapy把数据都给爬...

  • scrapy->pywin32

    scrapy遇见三个问题:(仅供自己学习记录) 1:no module named win32API https:...

  • scrapy

    scrapy学习 一、scrapy框架介绍 Scrapy Engine(引擎): 负责Spider、ItemPip...

  • Scrapy 爬虫框架学习记录

    打算做一个小小的项目,用于下载论文,所以先学学爬虫的一些相关知识。 创建项目 安装完 scrapy 后,新建一个爬...

  • scrapy小记

    scrapy入门学习地图 scrapy 框架:http://doc.scrapy.org/en/latest/to...

  • scrapy的概念和流程 (黑马教育)

    scrapy的概念和流程 学习目标: 了解 scrapy的概念 了解 scrapy框架的作用 掌握 scrapy框...

网友评论

      本文标题:scrapy学习记录(未完待续)

      本文链接:https://www.haomeiwen.com/subject/mnfnbxtx.html