zoukankan      html  css  js  c++  java
  • python爬虫

    资料:
        1.小白进阶之Scrapy第一篇
            https://cuiqingcai.com/3472.html
        2.Scrapy入门教程
            http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html#id2
        3.B站  --Python网络爬虫实战 Scrapy
            https://www.bilibili.com/video/av7635196/?p=5
        4.scrapy-redis介绍(一)
            https://blog.csdn.net/hjhmpl123/article/details/53292602
    
    
    安装:
        略,在python找
    
    快捷键
        Ctrl+Shift+d肆
        
    
    
    
    
    过程:
        1.scrapy项目创建
            scrapy startproject XXXXX             XXXXX代表你项目的名字
                结构:
                    scrapy.cfg: 项目的配置文件
                    xxxx/: 该项目的python模块。之后您将在此加入代码。
                    xxxx/items.py: 项目中的item文件.
                    xxxx/pipelines.py: 项目中的pipelines文件.
                    xxxx/settings.py: 项目的设置文件.
                    xxxx/spiders/: 放置spider代码的目录.
        2.scrapy shell    #参考: https://segmentfault.com/a/1190000013199636?utm_source=tag-newest
                        # https://www.cnblogs.com/zhaof/p/7189860.html
            在shell使用选择器,便于获取xpath,可以配合网页路径
                scrapy shell "http://www.itcast.cn/channel/teacher.shtml"
            
        3.Feed exports:
            最简单存储爬取的数据的方式是使用        
                scrapy crawl dmoz -o items.json
                该命令将采用 JSON 格式对爬取的数据进行序列化,生成 items.json 文件。
        4.通用爬虫(Broad Crawls)
            
        5.获取标签下多层结构所有文本  #参考: https://blog.csdn.net/zhengxiangwen/article/details/73865267
            response.xpath('//div[@class="post-full-text contents"]//text()').extract()
            
            
            
    scrapy执行流程        
            ...
            
            
    基类scrapy.Spider介绍
        属性:
            name:  #要求唯一
            allowed_domains: #允许域名
            start_urls: 
            custom_settings:个性化设置,会覆盖全局的设置
            crawler:抓取器,spider将绑定到上面
            settings:配置实例,包含工程中所有的配置变量
            logger:日志实例
        方法:
            from_crawler  :类方法,创建spider
            start_requests():生成初始requests
            make_requests_from_url(url):根据url生成一个request
            parse(requests):解析网页内容
            log(message[,level,component]):记录日志,
            self.logger.info("visited success")
            closed(reason):当spider关闭时候跳跃的方法
        
    子类:
        CrawlSpider:最常见的spider,用来抓取普通网页
                    比起基类增加2个成员,
                    rules:定义了抓取规则--连接怎么跟踪,使用哪一个parse函数解析此连接
                    parse_start_url(response):解析初始url的相应
        XMLFeedSpider: #下面的类不写了,放不进嘴里,根本不用嚼
        ...
        
    
    request参数:    #https://www.cnblogs.com/thunderLL/p/6551641.html
        callback:回调
        url:  #在这里卡住了,因为要的是str,我传入的是队列
        meta(dict):指定Request.meta属性的初始值。
        method(string):HTTP请求的方法,默认为GET
        
        
        
        
    命令:
        scrapy startproject XXXXX   #创建项目
        scrapy crawl csdn -o items.json #执行存储json数据  
        
    选择器:
        response.xpath('//ol/li').xpath('@data-item-id').extract()[0]
        response.xpath('//article/h1/text()').extract()[0]
        response.css('p.TweetTextSize.TweetTextSize--normal.js-tweet-text.tweet-text::text').extract()
        response.xpath('//ol/li').css('p.TweetTextSize.TweetTextSize--normal.js-tweet-text.tweet-text *::text').extract()
        
        
    scrapy_redis 分布式抓取 
    
    
    
    
    
    
    问题:
        1.在windows环境,运行项目出现 ModuleNotFoundError: No module named 'win32api' 错误
            #https://blog.csdn.net/little_sow/article/details/46408931
            原因:少pywin32库, 下载安装正常
    
    
    
    
    
    
    命令语句:
        保存到文件
            filename = response.url.split("/")[-2]
            with open(filename, 'wb') as f:
                f.write(response.body) 
        
        
  • 相关阅读:
    Windows phone开发 网络编程之HttpWebRequest
    ASP.NET AJAX应用
    Web程序安全机制
    SQLCE本地数据库
    Web服务
    LINQ数据库技术
    windows phone媒体应用开发
    ASP.NET文件操作
    ASP.NET XML文件
    centos6.5安装配置fastdfs+nginx实现分布式图片服务器
  • 原文地址:https://www.cnblogs.com/jiuya/p/9455174.html
Copyright © 2011-2022 走看看