zoukankan      html  css  js  c++  java
  • scrapy流程

    scrapy 命令:
        scrapy startproject xx(爬虫目录)   创建爬虫目录
        cd xx   进入目录
        scrapy genspilder chouti(爬虫名称) chouti.com(起始url)
        然后编写
    
        启动爬虫项目:
            scrapy crawl chouti(爬虫名称) --nolog(不看默认日志)
    
    # name = "" 这个是爬虫的名字,必须唯一,在不同的爬虫需要定义不同的名字
    # allowed_domains = [] 域名范围,限制爬虫爬取当前域名下的网页
    # start_urls =[] 爬取的URL元组/列表。爬虫从这里开始爬取数据,第一次爬取的页面就是从这里开始,其他的URL将会从这些起始的URL爬取的结果中生成
    # parse(self,response) 解析网页的方法,每个初始URL完成下载后将调用,调用的时候传入每一个初始URL返回的Response对象作为唯一参数,
    # 主要作用1、负责解析返回的网页数据,response.body 2、生成下一页的URL请求
    
    
    编写:
    
    def parse(self, response):
        # 1.响应
        # response封装了响应相关的所有数据:
        - response.text
        - response.encoding
        - response.request  # 当前响应是由那个请求发起;请求中 封装(要访问的url,下载完成之后执行那个函数)
        - response.url获取抓取的url
        - response.request.url获取抓取的url
        -response.body获取网页内容字节类型
        -response.body_as_unicode()#获取网站内容字符串类型
        # 2. 解析
        # response.xpath('//div[@href="x1"]/a').extract_first() 第一个
        # response.xpath('//div[@href="x1"]/a').extract()   所有
        # response.xpath('//div[@href="x1"]/a/text()').extract()  文本
        # response.xpath('//div[@href="x1"]/a/@href').extract()   属性
        # tag_list = response.xpath('//div[@href="x1"]/a')
    
    
        # for tag in tag_list:
        #     tag.xpath('.//p/text()').extract_first()
    
    # parse() 方法的执行机制
    # 使用yield返回数据,不要使用return。parse就会被当做一个生成器。scarpy将parse生成的数据,逐一返回
    # 如果返回值是request则加入爬取队列,如果是item类型,则交给pipeline处理
    
    # 3. 再次发起请求
    # yield Request(url='xxxx',callback=self.parse)
  • 相关阅读:
    Angularjs中添加ckEditor插件
    Angularjs中添加HighCharts
    ngTbale真分页实现排序、搜索等功能
    移动端小功能杂记(三)
    Html5 history Api简介
    移动端流程页处理
    Html5离线缓存简介
    多Tabs的横向滚动插件(支持Zepto和jQuery)
    flutter从零开始第一篇-环境搭建(Windows)
    vue 父子组件与全局数据传递共享
  • 原文地址:https://www.cnblogs.com/chvv/p/10332456.html
Copyright © 2011-2022 走看看