spider 爬虫文件基本参数(3)

时间:2021-07-07 01:05:02

一 代码

# -*- coding: utf-8 -*-
import scrapy class ZhihuSpider(scrapy.Spider):
# 爬虫名字,名字唯一,允许自定义
name = 'zhihu'
# 允许爬取的域名,scrapy每次发起的url爬取数据,先回进行域名检测,检测通过就爬取
allowed_domains = ['zhihu.com']
#发起的起始url地址,scrapy项目启动自动调用start_request()方法,把start_urls
# url的作为请求url发起请求,把获取到的response交给回调函数,回调函数传递给parse
# 解析数据
start_urls = ['http://zhihu.com/'] custom_settings = {
# 请求头
'user-agent': None,
# 请求来源
# 'referer': 'https://www.zhihu.com/',
} def start_requests(self):
'重写start_requests方法'
for url in self.start_urls:
#自定义解析方法
yield scrapy.Request(url=url,method='Get',callback=self.define_parse) def parse(self, response):
pass def define_parse(self,response):
print(response)
#输出状态码
self.logger.info(response.status)

二 参数详解

custom_settings

  • 1 settings 文件中默认请求头 DEFAULT_REQUEST_HEADERS
  • 2 spider文件中请求头参数 custom_settings
    •   必须以类变量形式存在
    • 优先级别高与全局

访问知乎不携带请求参数,返回400

spider 爬虫文件基本参数(3)

两种请求头的书写方式如下(左:spisder, 右:settings.py)

spider 爬虫文件基本参数(3)

allowed_domains

  允许爬取的域名,scrapy每次发起的url爬取数据,先回进行域名检测,检测通过就爬取

start_urls

  发起的起始url地址,scrapy项目启动自动调用start_request()方法,把start_urlsurl的作为请求url发起请求,把获取到的response交给回调函数,回调函数传递给parse解析数据

settings

  全局的配置文件

logger

  日志信息,使用=python自带的log模块

start_requests()

class MySpider(scrapy.Spider):
name = 'myspider' def start_requests(self):
#使用FormRequest提交数据
return [scrapy.FormRequest("http://www.example.com/login",
formdata={'user': 'john', 'pass': 'secret'},
callback=self.logged_in)] def logged_in(self, response):
pass

post 请求

spider 爬虫文件基本参数(3)

parse(response)

  参数:responseResponse) - 对解析的响应

指定解析函数,可以扩展多个函数,多层次的解析方法.

spider 爬虫文件基本参数(3)

spider 启动参数配置

import scrapy

class MySpider(scrapy.Spider):
name = 'myspider' def __init__(self, category=None, *args, **kwargs):
super(MySpider, self).__init__(*args, **kwargs)
self.start_urls = ['http://www.example.com/categories/%s' % category]

命令行中调用

scrapy crawl myspider -a category=electronics

 

spider 爬虫文件基本参数(3)的更多相关文章

  1. Scrapy 框架,爬虫文件相关

    Spiders 介绍 由一系列定义了一个网址或一组网址类如何被爬取的类组成 具体包括如何执行爬取任务并且如何从页面中提取结构化的数据. 简单来说就是帮助你爬取数据的地方 内部行为 #1.生成初始的Re ...

  2. 第三百四十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—编写spiders爬虫文件循环抓取内容—meta属性返回指定值给回调函数—Scrapy内置图片下载器

    第三百四十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—编写spiders爬虫文件循环抓取内容—meta属性返回指定值给回调函数—Scrapy内置图片下载器 编写spiders爬虫文件循环 ...

  3. 二十 Python分布式爬虫打造搜索引擎Scrapy精讲—编写spiders爬虫文件循环抓取内容—meta属性返回指定值给回调函数—Scrapy内置图片下载器

    编写spiders爬虫文件循环抓取内容 Request()方法,将指定的url地址添加到下载器下载页面,两个必须参数, 参数: url='url' callback=页面处理函数 使用时需要yield ...

  4. 第三百四十四节,Python分布式爬虫打造搜索引擎Scrapy精讲—craw母版l创建自动爬虫文件—以及 scrapy item loader机制

    第三百四十四节,Python分布式爬虫打造搜索引擎Scrapy精讲—craw母版l创建自动爬虫文件—以及 scrapy item loader机制 用命令创建自动爬虫文件 创建爬虫文件是根据scrap ...

  5. 二十三 Python分布式爬虫打造搜索引擎Scrapy精讲—craw母版l创建自动爬虫文件—以及 scrapy item loader机制

    用命令创建自动爬虫文件 创建爬虫文件是根据scrapy的母版来创建爬虫文件的 scrapy genspider -l  查看scrapy创建爬虫文件可用的母版 Available templates: ...

  6. SWFUpload多图上传、C#后端跨域传文件带参数

    前几天工作中用到了SWFUpload上传图片,涉及到跨域,因为前端无法实现跨域,所以只能把文件传到后端进行跨域请求,整理分享下. 效果图 前端 html部分 <!DOCTYPE html> ...

  7. C&num; 如何执行bat文件 传参数

    C# 如何执行bat文件 传参数 分类: C# basic 2011-04-25 18:55 3972人阅读 评论(0) 收藏 举报 c#stringpathoutput Process p = ne ...

  8. Django之用户上传文件的参数配置

    Django之用户上传文件的参数配置 models.py文件 class Xxoo(models.Model): title = models.CharField(max_length=128) # ...

  9. 由于想要实现下载的文件可以进行选择,而不是通过&lt&semi;a&gt&semi;标签写死下载文件的参数,所以一直想要使用JFinal结合ajax实现文件下载,但是ajax实现的文件下载并不能触发浏览器的下载文件弹出框,这里通过模拟表单提交实现同样的效果。

    由于想要实现下载的文件可以进行选择,而不是通过<a>标签写死下载文件的参数,所以一直想要使用JFinal结合ajax实现文件下载(这样的话ajax可以传递不同的参数),但是ajax实现的文 ...

随机推荐

  1. Matlab中一些函数的区别

    1.fix, floor,ceil,round   都是对x取整,但取整方向不同.   fix(x):向0取整(也可以理解为向中间取整)   floor(x):向左取整(从名字看,地板,表示下面) c ...

  2. js页面跳转的方式

    js方式的页面跳转1.window.location.href方式    <script language="javascript" type="text/java ...

  3. oops call trace 解析

    Call Trace: [  221.634988]  [<ffffffff8103fbc7>] ? kmld_pte_lookup+0x17/0x60 [  221.635016]  [ ...

  4. 基于AutoCAD的空间数据共享平台雏形

    好久没有更新博客了,今天先透露一个新的产品——AutoMap.我自己对于这个产品的定位是“基于AutoCAD的空间数据共享平台”.用一句话来概括AutoMap的功能:为用户提供一个在AutoCAD下访 ...

  5. HTTP - PUT 上传文件&sol;Shell (二)

    上一篇文章 HTTP - PUT 上传文件/Shell 讲到自己搭了一个环境,去测试HTTP - PUT上传Shell.最近又遇到几个PUT上传的例子,也成功上传了几次,来分享一下思密达. 0x00 ...

  6. Response&period;Write&comma;Page&period;RegisterClientScriptBlock和Page&period;RegisterStartupScript的区别

    Response.Write("<script>");输出在文件头部,一打开就执行. RegisterClientScriptBlock一般返回的是客户端函数的包装, ...

  7. tcp断开连接,4次握手,为什么wireshark 只能抓到3个包?

    用wireshark 抓包,看看tcp 断开连接的过程.  以前书上说tcp断开连接,4次握手,可我为什么wireshark 只能抓到3个包? 百度一下,别人也有类似的疑问. [求助]书上和网上的资料 ...

  8. jquery 点击事件切换样式

    $('#FatherName').on('click', '.ClassName', function(e){ $('.ClassName').removeClass('active'); $(thi ...

  9. localStorage的使用记录

    // 存数据 var str = JSON.stringify(back); localStorage.setItem("options", str); // 取数据 var op ...

  10. centos 7 下 Ceph 配置安装

    一.环境介绍 系统: CentOS Linux release 7.3.1611 (Core) 硬盘: 系统盘:300GB*2-raid 1 OSD:600GB*4-raid 5      ceph ...