• 2019-02-08 Python学习之Scrapy的简单了解


    今天遇到的问题和昨天差不多,一个Scrapy装了好久,anaconda卸了又装,pycharm卸了又装,环境变量配置一堆,依赖包下载一堆。查了一堆资料总算是搞好了。

    Scripy:
    先放个框架结构图(来自嵩天老师mooc)
    在这里插入图片描述
    Scrapy 爬虫的使用步骤

    1. 创建一个工程和spider模板
    2. 编写spider
    3. 编写Item Pipeline
    4. 优化配置策略

    两种风格的demospider写法:

    class DemoSpider(scrapy.Spider):
        name = 'demo'
        #allowed_domains = ['python123.io']
        start_urls = ['http://python123.io/ws/demo.html']	#启动时最开始的链接
    
        def parse(self, response):			#解析和操作的相关步骤
        	fname = response.url.split('/')[-1]		#文件名叫demo.html(切片,得到最后一个)
        	with open(fname,'wb+') as f:
        		f.write(response.body)
        	self.log = ('saved file %s.'% fname)
    
    
    
    class DemoSpider(scrapy.Spider):
    	name = "demo"
    
    	def start_requests(self):
    		urls = [
    				'http://python123.io/ws/demo.html'
    				]
    		for url in urls:
    			yield scrapy.Request(url=url,callback=self.parse)
    
    
    	def parse(self,response):
    		fname = response.url.split('/')[-1]
    		with open(fname,'wb') as f:
    			f.write(response.body)
    		self.log('Save file %s.' % fname)
    

    几种类:
    Request类
    class scrapy.http.Request()

    • Request对象生成一个HTTP请求
    • 由Spider生成,由Downloader执行

    属性和方法

    .url 对应请求的url地址
    .method 请求方法
    .headers 字典类型风格的请求头
    .body 请求内容主题
    .meta 用户添加的扩展信息
    .copy() 复制该响应

    Response类
    class scrapy.http.Request()

    • Response对象表示一个http响应
    • 由downloader生成,spider来处理

    属性和方法

    .urls Response对应的url地址
    .status HTTP状态码
    .headers Response对应的头部信息
    .body Response对应的内容信息
    .flags 一组标记
    .request 产生Response类型对应的Request对象
    .copy() 复制该响应

    Item类
    class scrapy.item.Item()

    • Item对象表示一个从HTML页面中提取的信息内容
    • 由Spider生成,由Item Pipeline进行处理
    • Item类似字典类型,可以按照字典类型进行相关操作

    Scrapy爬虫提取信息的方法
    BeautifulSoup
    lxml
    re
    CSS selector
    XPath selector

  • 相关阅读:
    织梦CMS去广告方法 for DedeCMS V5.7
    织梦网站底部的Power by DedeCms怎么去掉?
    java环境变量最佳配置
    HTML课上小结
    PHP四个阶段目标以及第一阶段学习内容
    例子:选项卡和进度条
    例子:轮播效果
    例子:下拉列表
    document对象操作:浏览器页面文件
    Windows对象操作:浏览器窗口信息
  • 原文地址:https://www.cnblogs.com/roccoshi/p/13027094.html
Copyright © 2020-2023  润新知