【Scrapy】Spiders爬虫

Spider类定义了如何爬取某个网站。包括爬取的动作以及如何从网页的内容中提取结构化数据

Spider就是定义爬取的动作及分析某个网页的地方。

爬取的循环:

①以初始的URL初始化Request,并设置回调函数。当该request下载完毕并返回时,将生成response,并作为参数传给该回调函数。

spider中初始的request是通过调用start_requests()来获取的。start_requests()读取start_urls中的URL,并以parse为回调函数生成Request.

②在回调函数内分析返回的(网页)内容。返回Item对象或者Request或者一个包括二者的可迭代容器。返回的Request对象之后会经过Scrapy处理,下载相应的内容,并调用设置的callback函数(函数可以相同)。

③在回调函数内,可以使用选择器(Selectors)(也可以使用BeautifulSoup,lxml或者想用的任何解析器)来分析网页内容,并根据分析的数据生成item。

④最后由spider返回的item将被存到数据库(由某些Item Pipeline处理)或使用Feed exports存入到文件中。

Spider参数

Spider可以通过接收参数来修改其功能。spider参数一般用来定义初始URL或者指定限制爬取网站的部分。也可以使用其来配置spider的任何功能。

在运行crawl时添加-a可以传递Spider参数

scrapy crawl myspider -a category=electronics

Spider

class scrapy.spider.Spider

Spider是最简单的spider。每个其他的spider必须继承自该类(包括Scrapy自带的其他spider以及自己编写的spider)。Spider并没有提供什么特殊的功能。其仅仅请求给定的start_urls/start-requests,并根据返回的结果(resulting responses)调用spider的parse方法。

name

定义spider名字的字符串。spider的名字定义了Scrapy如何定位(并初始化)spider。所以其必须是唯一的。

时间: 2024-10-21 14:42:58

【Scrapy】Spiders爬虫的相关文章

第三百四十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—编写spiders爬虫文件循环抓取内容—

第三百四十一节,Python分布式爬虫打造搜索引擎Scrapy精讲-编写spiders爬虫文件循环抓取内容- 编写spiders爬虫文件循环抓取内容 Request()方法,将指定的url地址添加到下载器下载页面,两个必须参数, 参数: url='url' callback=页面处理函数 使用时需要yield Request() parse.urljoin()方法,是urllib库下的方法,是自动url拼接,如果第二个参数的url地址是相对路径会自动与第一个参数拼接 # -*- coding:

Python快速开发分布式搜索引擎Scrapy精讲—编写spiders爬虫文件循环抓取内容

编写spiders爬虫文件循环抓取内容 Request()方法,将指定的url地址添加到下载器下载页面,两个必须参数, 参数: url='url' callback=页面处理函数 使用时需要yield Request() parse.urljoin()方法,是urllib库下的方法,是自动url拼接,如果第二个参数的url地址是相对路径会自动与第一个参数拼接 # -*- coding: utf-8 -*- import scrapy from scrapy.http import Request

python scrapy简单爬虫记录(实现简单爬取知乎)

之前写了个scrapy的学习记录,只是简单的介绍了下scrapy的一些内容,并没有实际的例子,现在开始记录例子 使用的环境是python2.7, scrapy1.2.0 首先创建项目 在要建立项目的目录下执行命令scrapy startproject tutorial scrapy会帮你建立好项目,接着创建蜘蛛scrapy genspider zhuhuSpider zhihu.com 当前的文件结构是 --tutorial --spiders --__init__.py --zhihuSpid

web爬虫讲解—Scrapy框架爬虫—Scrapy安装—Scrapy指令

Scrapy框架安装 1.首先,终端执行命令升级pip: python -m pip install --upgrade pip2.安装,wheel(建议网络安装) pip install wheel3.安装,lxml(建议下载安装)4.安装,Twisted(建议下载安装)5.安装,Scrapy(建议网络安装) pip install Scrapy 测试Scrapy是否安装成功 Scrapy框架指令 scrapy -h 查看帮助信息 Available commands: bench Run q

第三百五十六节,Python分布式爬虫打造搜索引擎Scrapy精讲—scrapy分布式爬虫要点

第三百五十六节,Python分布式爬虫打造搜索引擎Scrapy精讲-scrapy分布式爬虫要点 1.分布式爬虫原理 2.分布式爬虫优点 3.分布式爬虫需要解决的问题

Python Scrapy 自动爬虫注意细节

一.首次爬取模拟浏览器 在爬虫文件中,添加start_request函数.如: def start_requests(self): ua = {"User-Agent": 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.2050.400 QQBrowser/9.5.10169.400'} yie

eclipse+PyDev 中报错"scrapy.spiders.Spider" ,可用"# @UndefinedVariable"压制.

# -*- coding:utf-8 -*- ''' Created on 2015年10月22日 (1.1) 例子来源: http://scrapy-chs.readthedocs.org/zh_CN/latest/intro/tutorial.html ''' import scrapy # 去掉 s 在PyDev中不报错, 但是无法运行.如果加上 s 虽然报错,但是程序能正常运行. # 可以在 PyDev 中使用 " # @UndefinedVariable "来压制错误提示.

第三百三十四节,web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息

第三百三十四节,web爬虫讲解2-Scrapy框架爬虫-Scrapy爬取百度新闻,爬取Ajax动态生成的信息 crapy爬取百度新闻,爬取Ajax动态生成的信息,抓取百度新闻首页的新闻标题和rul地址 有多网站,当你浏览器访问时看到的信息,在html源文件里却找不到,由得信息还是滚动条滚动到对应的位置后才显示信息,那么这种一般都是 js 的 Ajax 动态请求生成的信息 我们以百度新闻为列: 1.分析网站 首先我们浏览器打开百度新闻,在网页中间部分找一条新闻信息 然后查看源码,看看在源码里是否有

第三百三十三节,web爬虫讲解2—Scrapy框架爬虫—Scrapy模拟浏览器登录—获取Scrapy框架Cookies

第三百三十三节,web爬虫讲解2-Scrapy框架爬虫-Scrapy模拟浏览器登录 模拟浏览器登录 start_requests()方法,可以返回一个请求给爬虫的起始网站,这个返回的请求相当于start_urls,start_requests()返回的请求会替代start_urls里的请求 Request()get请求,可以设置,url.cookie.回调函数 FormRequest.from_response()表单post提交,第一个必须参数,上一次响应cookie的response对象,其

分享课程Scrapy分布式爬虫之ES搜索引擎网站

Scrapy分布式爬虫之ES搜索引擎网站 分享网盘地址--https://pan.baidu.com/s/1oAsW3Se 密码: tmtx 备用地址(腾讯微云):http://url.cn/51n4soD密码:SyRADx 大数据时代到来,信息更新非常快速,各行各业如果不与时俱进,都将面临优胜劣汰,知识是不断更新的,只有拥有一技之长,才能立于不败之地.网络爬虫,即Web Spider,是一个很形象的名字.目前爬虫开发语言的主要是python,本课程结合几个小的爬虫案例,帮助学员更好的学习爬虫.