一 代码

# -*- 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

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

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 请求

parse(response)

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

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

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# 如何执行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. 由于想要实现下载的文件可以进行选择,而不是通过<a>标签写死下载文件的参数,所以一直想要使用JFinal结合ajax实现文件下载,但是ajax实现的文件下载并不能触发浏览器的下载文件弹出框,这里通过模拟表单提交实现同样的效果。

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

随机推荐

  1. 数据结构(C++)之Double Linked List实践

    //double linked list (type int),the position starts from 0 #include <iostream> using namespace ...

  2. CentOS 安装Python3.x常见问题

    CentOS 6.x自带的Python版本是2.6,CentOS 7.x上自带的是2.7,我们要自己安装Python3.X,配置环境,不过一般安装过程不会一帆风顺,往往有些报错,在CentOS以及其他 ...

  3. SQL—对数据表内容的基本操作

    数据表  students      id name sex age address 101 张汉 男 14 杭州 102 欧阳钦 男 13 杭州 103 吴昊 男 14 北京 104 钱进进 男 1 ...

  4. CSS简写总结

    CSS简写就是指将多行的CSS属性简写成一行,又称为CSS代码优化或CSS缩写.CSS 简写的最大好处就是能够显著减少CSS文件的大小,优化网站整体性能,更加容易阅读. 下面介绍常见的CSS简写规则: ...

  5. java8中stream的map和flatmap的理解

    转自https://blog.csdn.net/wynjauu/article/details/78741093 假如我们有这样一个需求给定单词列表["Hello","W ...

  6. Oracle的nvl

    在Oracle中nvl(字段名,value)函数用于对没有值的字段做处理在MySql中ifnull(字段名,value)是一样的功能

  7. BZOJ_3942_[Usaco2015 Feb]Censoring_KMP

    BZOJ_3942_[Usaco2015 Feb]Censoring_KMP Description 有一个S串和一个T串,长度均小于1,000,000,设当前串为U串,然后从前往后枚举S串一个字符一 ...

  8. BZOJ_1827_[Usaco2010 Mar]gather 奶牛大集会_树形DP

    BZOJ_1827_[Usaco2010 Mar]gather 奶牛大集会_树形DP 题意:Bessie正在计划一年一度的奶牛大集会,来自全国各地的奶牛将来参加这一次集会.当然,她会选择最方便的地点来 ...

  9. BZOJ_4892_[Tjoi2017]dna_哈希

    BZOJ_4892_[Tjoi2017]dna_哈希 Description 加里敦大学的生物研究所,发现了决定人喜不喜欢吃藕的基因序列S,有这个序列的碱基序列就会表现出喜欢吃藕的 性状,但是研究人员 ...

  10. 常用典型的sql语句

    1.两张表,怎么把一张表中的数据插入到另一张表中? 1,insert into table_a select * from table_b 2,insert into table_a(field_a1 ...