scrapy(二)
来源:互联网 发布:简单的c语言程序题目 编辑:程序博客网 时间:2024/06/07 20:29
请求与响应
请求
GET
- Request类
- 重要参数
- url:目标url
- callback:目标url对应的解析函数
- meta:传参,,字典形式
- headers:请求头,模拟伪装
- dont_filter: 该请求是否被过滤器过滤
- cookies:cookies参数
- meta传参原理
- Scheduler(调度器)将requests请求实例,(此实例中含有meta参数)给了下载器,Downloader(下载器)请求对应url返回responses时,会将调度器传递的参数装在response中,给了Spider类,也就实现了传参。
POST
- FormRequest类
- 参数
- 同post,新增:
- formdata:表单参数(字典格式)
- 作用范围:
- 模拟登陆
- 发送post数据获取响应
- FormRequest的from_response()方法
- 参数
- response
- formdata:表单参数(字典格式)
- callback
- 特性:
- 自动获取表单并将表单数据提交
- 作用:
- 填写表单数据
响应
- 产生位置
- 下载器模块
- 下载器中间件
CrawlSpider类
介绍
- 功能:自动提取链接并提交请求
- 与Spider类的区别
- CrawlSpider主要使用规则(rules)来提取链接,并自动提交请求
- CrawlSpider类不能重写parse,因为它在parse方法中实现了自动提交请求
- 要重新定义方法parse_start_url处理起始url对应的响应
- parse_start_url必须返回列表
- rules:
- Rule对象的集合
- 用来匹配目标网站并排除干扰
- Rule
- 参数:
- linkextractor:从响应中提取链接(重要)
- callback:处理链接响应方法(可写可不写),字符串形式
- follow:定义响应中提取链接是否要跟踪
- process_links:对提取链接进行过滤
- process_requests:对生成请求进行过滤
- 链接提取器LinkExtractor
- 作用:从响应中提取链接
- 参数:
- allow:满足该正则的链接将会被提取
- deny:满足该正则的链接将不会被提取
- allowed_domains:允许的域名
- deny_domains:禁止的域名
- restrict_xpaths:规定的xpath节点
- 参数:
# 创建链接提取器le = LinkExtractor(allow=(),deny=())# 提取链接le.extract_links(response)
使用
- 创建爬虫
- scrapy genspider -t crawl 爬虫名 域
- 与Spider类的区别
- 1)导包
- ①导入链接提取器:
- from scrapy.linkextractors import Link Extractor
- ②导入crawlspider类和Rule
- from scrapy.spiders import CrawlSpider,Rule
- ①导入链接提取器:
- 2) 类的继承使用CrawlSpider
- 3) rules变量
- 4)Parse方法不能重写
- 1)导包
- CrawlSpider爬虫开发
- 编写rule列表,创建Rule实例
- 注:回调函数使用字符串
- 编写回调函数
- 编写rule列表,创建Rule实例
优缺点
- 优点
- 适合整站爬取
- 爬取效率高
- 缺点:
- 无法通过meta进行参数传递
mongodb与数据入库
mongodb
- 见博客数据库
入库:
1.将数据库的参数写在settings文件中(参数名大写)2.在管道中使用数据库参数连接数据库3.在process_item方法中将数据写入数据库
练习:
spider与mongodb交互:github
阅读全文
0 0
- scrapy-redis(二)
- scrapy(二)
- Scrapy入门(二)创建Scrapy项目
- Scrapy学习笔记(二)
- 浅谈 Scrapy 爬虫(二)
- scrapy抓取 W3School (二)
- Python scrapy基础教程(二)
- 【Scrapy】Scrapy学习(二)——基本概念
- 【python】【scrapy】使用方法概要(二)
- python 爬虫学习二(Scrapy讲解)
- Scrapy爬取百度图片(二)
- scrapy中文手册笔记(二)
- Scrapy学习二:基本概念进阶(未完成)
- scrapy 架构详解二
- scrapy 之二
- scrapy实战二
- 爬虫总结(二)-- scrapy
- 用 Scrapy+Mariadb 实现汉典数据爬虫(二)——Scrapy简单介绍
- POJ[1182]食物链 加权并查集
- 搬家
- Python机器学习实践指南 笔记(1)-Python机器学习的生态系统
- Tkinter学习笔记之Scale尺度
- bzoj 1640 && bzoj 1692: [Usaco2007 Dec]队列变换(后缀数组)
- scrapy(二)
- C++ VS项目属性的一些配置项的总结
- CodeVS3327 选择数字 解题报告【单调队列优化DP】
- flume介绍与原理
- Digdata Development Java__Study_10(buffer缓冲区,字符流)
- 导弹拦截(贪心问+动态规划问)
- HYSBZ 3224 Tyvj 1728 普通平衡树 treap
- 奇怪的国家
- 十二、网易2017<独立的小易>