爬虫学习笔记day08

3.scrapy模块方法
    yield scrapy.Request(url,callback=解析方法名)
==================================================
Day08笔记
1.如何同时开启多个项目管道文件
    在piplines.py中所有管道classzhong ,设置函数 porcess_item(self,item.spider)
    的返回值为item
    ######### return item #############
2. 如何保存为csv或者json文件
    scrapy crawl tengxun -o tengxun.csv
    scrapy crawl tengxun -o tengxun.json
    编码问题:settings.py 中添加变量 FEED_EXPORT_ENCODING = "utf-8"
3. 下载器中间件
    1. 随机的User-Agent
        1. settings.py中
            方式一 : USER_AGENT = "Mozilla/5.0..."
            方式二 : DEFALUT_REQUEST_HEADERS ={"":"",}
        2. 通过设置中间件(middlewares.py)
            1. 项目目录中新建userAgents.py,存放大量Agent
                ## 大量的User-Agent要以字符串方式,不能以字典方式
            2. middlewares.py中写class
                class ...(object):
                    def process_request(self,request,spider):
                        # headers 属性为请求报头,为字典
                        # request.headers['User-Agent']=...
            3. settings.py中开始 DOWNLOADER_MIDDLEWARES
    2. 设置代理
        1. middlewares.py
            class ...(object):
                def process_request(self,request,spider):
                    # request的meta可设置代理参数
                    request.meta['proxy'] = random.choice(.)
        2. settings.py
            DOWNLOADER_MIDDLEWARES = {"":300}
4. 图片管道:ImagePipline
    1. 使用流程(要操作的文件)
        1. settings.py
            设置图片要保存的路径的变量
            IMAGES_STORE = "/home/tarena/aaa/aaa/images"
        2. pipelines.py
            1. 导入scrapy定义好的图片管道类
                from scrapy.pipelines.images import ImagesPipeline
            2. 定义自己的class,继承scrapy的图片管道类
                class AAAImagePipeline(ImagesPipeline):
                    def get_media_requests(self,item,info)
                        ...
    2. 案例 : 斗鱼图片抓取案例(手机app)
            1. 菜单 --> 颜值
                http://capi.douyucdn.cn/api/v1/getVerticalRoom?limit=20&offset=0
            2. 抓取目标
                1. 图片
                2. 主播名
                3. 城市
                    把所有的图片保存在images_STORE
            3. 步骤
                1. 前提:手机和电脑一个局域网
                2. Fiddler抓包工具
                    Connections  : Allow remote computers to ...
                    HTTPS : ... from all processe
                3. IP地址
                     win + r -->输入 ipconfig
                4. 配置手机    
                    手机浏览器: http://ip:8888
                    下载 FiddlerRoot certificate
                5. 安装
                    设置 -> 更多 -> ... 从存储设备安装
                6. 设置手机代理
                    长按wife -> 代理 ->输入:ip(电脑) 端口号(8888)
5. dont_filter参数
    scrapy.Request(url,callback=parse,dont_filter=.)
    1. False: 默认,检查域
    2. True : 或略域组检查
6. Scrapy shell的使用
    1. scrapy shell "http://www.baidu.com/"
    2. response.text 获取响应的文本
    3. response.body :获取响应的字节流
7. CrawlSpider类
    1. Spider的派生类
        Spider类:只爬去了start_urls列表中的网页
        CrawlSpider类:定义可一些规则(ruler)来提供提取链接,跟进链接
    2. 创建CrawlSpider模板爬虫文件
        加 -t crawl
        scrapy genspider -t crawl tenxun "xxx.com"
    3. 实例:从页面中提取所有的链接
        1. scrapy shell "https://hr.tencent.com/position.php?"
        2. from scrapy.linkextractors import LinkExtractor
        3. linkList = LinkExtractor(allow=("start=\d+"))
        4. linkList = extract_links(response)
    4. Rule
        1. 作用:对爬取网站动作指定特定操作
            rules = (Rule(LinkExtractor(allow=("正则"))))

            rules = (
                Rule(LinkExtractor(allow=r'start=\d+'),
                    callback = "paseHtml",
                    follow = True,
                )
            
            )
8. 机器视觉与tesseract
    1. OCR(Optical Character Recngnition)
        光学字符识别
            扫描字符: 通过字符的形状 --> 电子文本,OCR有很多的底层识别库
    2. 安装
        Windows 下:
            https://scourceforge.net/projects.tesseract-ocr-alt/files/tesseract-ocr-setup-3.02.02.exe/download

        Ubuntu: sudo apt-get install tesseract-ocr
        Mac :brew install tesseract
    3. 验证
        终端 :testeract test1.jsp test1.txt
    4. 安装pytesseract模块
        python -m pip install pytesseract模块
            #方法很少,就一个,图片转字符串
            :image_to_string
    5. 示例
        1. 导模块
        2. 创建图片对象
        3. 转成字符串


        # 百度文字识别网站
        http://ai.baidu.com/tech/ocr/general
9. Scrapy模拟登录    
    1. 运行爬虫 : scrapy runspider renren.py


        


 

上一篇:scrum项目冲刺_day08总结


下一篇:考研打卡_Day08