美文网首页我爱编程
作业笔记11_selenium

作业笔记11_selenium

作者: ChZ_CC | 来源:发表于2017-02-07 14:09 被阅读159次
    1. 查找tesseract训练的相关资料,尝试训练tesseract
    2. 尝试使用selenium爬取京东上某商品的价格与名称

    笔记

    动态网页爬虫

    • Ajax和动态HTML
      • Ajax(Asynchronous JavaScript and XML)
      • 经过JS渲染的网页直接去分析后台请求是狠复杂的,在Python中可以利用PhantomJS和Selenium这两个库帮助完成JS解析。
    • PhantomJS
      • PhantomJS是一个无界面的,可脚本编程的WebKit浏览器引擎。它原生支持多种web 标准:DOM 操作,CSS选择器,JSON,Canvas 以及SVG。
      • 嗯,就是一个没有界面的浏览器。它会把网页加载的内容储存到内存上。
      • 下载地址:PhantomJS官网
      • 安装:超简单,解压缩就好。Windows添加一下环境变量。
      • 打开cmd,执行phantomjs -v,出现版本号,就说明安装成功了。
      • 执行phantomjs,进入Phantom环境。可以根据官方文档进行操作了。
    • Selenium
      • 自动化测试工具。它支持各种浏览器,包括Chrome,Safari,Firefox等主流界面式浏览器,如果你在这些浏览器里面安装一个Selenium的插件,那么便可以方便地实现Web界面的测试。换句话说叫 Selenium 支持这些浏览器驱动。

      • 安装:pip下载安装,或官网下载安装。

        C:\Users\yishikeji-05>pip install selenium
        Collecting selenium
          Downloading selenium-3.0.2-py2.py3-none-any.whl (915kB)
            100% |████████████████████████████████| 921kB 439kB/s
        Installing collected packages: selenium
        Successfully installed selenium-3.0.2
        

    【这部分笔记参考了静觅这个博客,有一系列关于Python爬虫的文章,值得一看】

    文字图像识别:验证码

    • ORC——将图像翻译成文字,光学文字识别(Optical Character Recognition)
    • ORC库
      • Pillow——图像库(已经有了)
      • Teseract——文字识别,GitHub资源
    • Teseract安装
      • Mac OS: brew install tesseract
      • windows: 下载exe的安装文件。我安装在了D:\Program Files\Tesseract-OCR

    Tesseract的使用

    • 保存一张图片到Tesseract的安装路径下,扩展名改为tif

    • 进入cmd命令窗,cd D:\Program Files\Tesseract-OCR进入安装目录,执行命令:

      >tesseract pic.tif textoutput
      Tesseract Open Source OCR Engine v3.05.00dev with Leptonica
      
    • 然后在安装目录下就出现了textoutput.txt的文件。

      txt文件内容:This is some text, written in Arial, that will be read by Tesseract. Here are some symbols: !@#$%"&'()


    作业

    1. 尝试训练tesseract

    训练步骤:

    • 下载并安装jTessBoxEditor工具。

    • 准备一张用来训练的tiff格式图片。

    • 将10张图片合并为一张tiff格式的图片orderNo.tif

    • Make Box Files:打开命令行,进入安装目录,执行以下代码。

      tesseract orderNo.tif orderNo batch.nochop makebox
      
    • 使用jTessBoxEditor打开orderNo.tif文件,需要记住的是第2步生成的orderNo.box要和这个orderNo.tif文件同在一个目录下。逐个校正文字,后保存。

    • Run Tesseract for Training:执行如下命令

      tesseract orderNo.tif orderNo nobatch box.train
      
    • Compute the Character Set:执行如下命令

      unicharset_extractor orderNo.box
      
    • 新建字体文件“font_properties”,执行命令

      mftraining.exe -F font_properties -U unicharset orderNo.tr
      
    • Clustering

      cntraining orderNo.tr
      
    • 此时,在目录下应该生成若干个文件了(并没有),把unicharset,inttemp,normproto,pffmtable这四个文件加上前缀“orderNo.”。然后输入命令:

    combine_tessdata orderNo.
    

    以上是老师给的资料中的训练步骤,然而我尝试之后并没有成功。GitHub文档所介绍的像是用Linux系统做的,究竟也没有搞明白。

    2. 使用selenium爬取京东上某商品的价格与名称

    代码部分:

    from selenium import webdriver
    import time
    
    driver = webdriver.PhantomJS()
    driver.get("http://item.jd.com/3438929.html#")
    #driver.page_source
    time.sleep(1)
    price = driver.find_element_by_class_name("p-price").text
    print('商品名称:', driver.title, '\n', '商品价格:', price)
    driver.close()
    

    结果输出:

    商品名称: 【JDtabJ01】JDtab 魅族 哈曼 富士康 乐视 京东联袂打造7.9英寸平板电脑 2K视网膜屏 4GB+64GB 香槟金 J01 【行情 报 价 价格 评测】-京东
    商品价格: ¥1499.00
    

    做的很勉强,用selenium提取信息不太熟练,总是出现InvalidSelectorException这个错误。

    相关文章

      网友评论

        本文标题:作业笔记11_selenium

        本文链接:https://www.haomeiwen.com/subject/vvapittx.html