1.scrapy基础知识

一、基础知识

1.网络爬虫

(1)爬虫的分类

         通用网络爬虫:又称全网爬虫,常见的有百度和Google等搜索引擎,爬行对象从一些初始URL扩充到整个网络,主要为门户站点搜索引擎和大型网站服务采集数据,这在网络上通常称为搜索引擎

  聚焦网络爬虫、增量式网络爬虫、深层网络爬虫:这类爬虫比较有目的,也就是网络上经常说的网络爬虫

(2)反爬虫技术及解决方案

  • 用户请求的Headers:从用户请求的Headers反爬虫是最常见的反爬虫策略,很多网站会对Headers的User-Agent进行检测,如果遇到这类反爬虫机制,就可以在爬虫代码中添加Headers请求头,将浏览器的请求信息以字典的数据格式写入爬虫的请求头
  • 用户操作网站行为
  • 网站目录数据加载方式
  • 数据加密
  • 验证码识别

2.chrome分析网站

(1)五大主流浏览器:IE,Opera,Google chrome,Firefox,Safari,其中chrome和Firefox是编程开发首选,主要是两者的运行速度、扩展性和用户体验都符合开发人员所需,其中chrome对HTML5和CSS3的支持也比较完善。

(2)开发者工具的界面共有9个标签页,分别是:Elements, console,source,network,performance,memory,application,security,audits,其中爬虫要掌握network和elements就能满足大多数爬虫的需求,其中network是最核心的部分

 

 

二、json文件函数

1. json.dumps():将Python对象编码成JSON字符串

json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)

 

2. json.loads():将已编码的JSON字符串解码成Python对象

json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

三、scrapy函数

1scrapy.Request(url,callback,method,meta,headers)

    其中callback指定一个回调函数,该回调函数一这个request的response作为第一个参数,如果未指定callback,则默认使用spider的parse()方法;

meta(dict):指定Request.meta属性的初始值,如果给了该参数,dict将会浅拷贝;一个dict,包含request的任意元数据。该dict在新Requests中为空,当Scrapy的其他扩展启用的时候填充数据。dict在传输是浅拷贝。(浅拷贝只是增加了一个好指针指向已经存在的内存,而深拷贝就是增加一个指针并且 申请一个新的内存,使这个指针指向新的内存,采用深拷贝的情况下,释放内存的时候就不会出现在浅拷贝是重复释放同一内存的错误

method(string):HTTP请求的方法,默认为GETheaders(dict):request的头信息。

 

posted @ 2019-03-23 21:55  凉生暖至  阅读(158)  评论(0编辑  收藏  举报