python的scrapy requests与response对象怎么用


这篇文章主要介绍了python的scrapyrequests与response对象怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python的scrapyrequests与response对象怎么用文章都会有所收获,下面我们一起来看看吧。在 scrapy 中 Request 对象代表着请求,即向服务器发送数据该对象的构造函数原型如下所示:其中只有url为必填参数,具体说明如下:callback:页面解析函数,当 Request 请求获取到 Response 响应之后,设定的函数会被调用,默认是self.parse方法;method:请求类型,默认为 GET,所以使用 Request 是可以发送 POST 的请求的,FormRequest 类是 Request 类的子类;headers:请求头,字典类型;body:请求的正文,需要 bytes 类型或 str 类型;cookies:Cookie 字典,dict 类型;meta:元数据字典,dict 类型,可以给其它组件传递信息;encoding:url和body参数的编码,注意不是数据响应编码;priority:请求的优先级,默认为0,数值越大,优先级越高;dont_filter默认值为 False,该参数表示是否重复请求相同地址;errback:请求异常时的回调函数。在 scrapy中,Response对象表示请求响应对象,即服务器返回给爬虫的数据,其构造函数原型如下:与 Request 一致,该方法中仅url为必填参数,不过一般很少用到手动创建一个 Response 对象实例的场景。Response 类衍生出来一个子类TextResponse,然后TextResponse又衍生出来HtmlResponseXmlResponseResponse 包括的属性和方法如下:属性清单:url:响应地址;status:响应状态码;headers:响应头;encoding:响应正文的编码;body:响应正文,bytes 类型;text:文本形式的响应正文,将 body 进免费云主机域名行编码之后的数据;request:获取请求对象;meta:元数据字典,dict 类型,请求传递过来的参数;selector:选择器对象。方法清单:xpath():XPath 选择器;css():CSS 选择器;urljoin():就是urllib.parse模块的urljoin()json():将响应数据序列化为 JSON 格式;关于 Request 和 Response 类的相关源码,可以在 scrapyhttp 目录查看。数据管道在 scrapy 中主要对数据进行处理,在实际开发过程中需要注意一个ItemPipeline,只负责一种功能的数据处理,当然在 scrapy 中你可以创建多个ItemPipelineItemPipeline的使用场景:数据清洗,例如去重,去除异常数据;数据保存方式编写,例如存储 Mongodb,MySQL,Redis 数据库。在编写ItemPipeline类的时候,不需要其继承特定类,只需要实现固定名称的方法即可,在之前的博客中已经反复提及,自定义ItemPipeline类需要实现process_item()open_spider()close_spider()方法,其中process_item()必须实现。process_item()返回值是 Item 或者字典,也可以返回一个DropItem类型的数据,此时该项 item 会被忽略,不会被后面的ItemPipeline处理。过滤数据的逻辑实现如果希望在ItemPipeline实现过滤数据,使用集合即可,发现集合中已经存在数据了,抛出DropItem即可。scrapy 编写的爬虫在提取大量链接时,使用LinkExtractor会更加便捷。 使用from scrapy.linkextractors import LinkExtractor导入LinkExtractor,该类的构造函数如下所示:其中各个参数说明如下:allow:一个正则表达式或正则表达式列表,提取正则表达式匹配的 url,默认全部提取;deny:与allow相反;allow_domains:字符串或者列表,domain 限制;deny_domains:与上面相反;restrict_xpaths:按照 xpath 提取;restrict_css:安装 css 选择器提取;tags:提取指定标签内的链接;attrs:提取指定属性内的链接;process_value:函数类型,传入该参数之后,LinkExtractor 会将其匹配到的所有链接,都传入该函数进行处理。下面的代码是提取Response对象中的链接,需要使用extract_links()方法。创建一个LinkExtractor对象;使用构造器参数描述提取规则;调用LinkExtractor对象的extract_links方法传入一个Response对象,返回一个列表;使用列表中的任意元素调用.url或者.text获取链接和链接文本。本次的目标站点是:淘数据-行业报告完整代码编写如下所示,使用 LinkExtractor 提取页面超链接。关于“python的scrapyrequests与response对象怎么用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“python的scrapyrequests与response对象怎么用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注百云主机行业资讯频道。

相关推荐: VirtualBox虚拟机安装CentOS7实例分析

这篇文章主要介绍“VirtualBox虚拟机安装CentOS7实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“VirtualBox虚拟机安装CentOS7实例分析”文章能帮助大家解决问题。添加虚拟机1.新建虚拟机…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 05/04 09:19
Next 05/04 09:19

相关推荐