zoukankan      html  css  js  c++  java
  • 用python抓取百度指数 以及 用cxfreeze打包的经验

    用python抓百度指数,参考的文章是 https://github.com/TTyb/Baiduindex ,或者看这里 http://www.cnblogs.com/TTyb/p/6051366.html ,这两篇文章是一样的;

    需要注意的地方是:

    1)安装 selenium2.45 和 Firefox32.0.1 时要注意两者版本的匹配,Firefox版本太高反而不匹配;

    2)当查找多个关键词的百度指数时,查第一个词时,是这样操作的:

    browser.find_element_by_id("schword").clear()
    browser.find_element_by_id("schword").send_keys(keyword) browser.find_element_by_id("searchWords").click()

    但第一个词点击完,窗口就变了,查第二个词的时候是这样的:

    browser.find_element_by_id("schword").clear()
    browser.find_element_by_id("schword").send_keys(keyword)
    browser.find_element_by_id("schsubmit").click()

    3)得到关键词的百度指数截图时,  需要从截图中截出数字来,在裁剪的时候要考虑前面字符的长度,但字符有中文字符,英文字符,英文字符的长度是中文字符的一半,这个是要考虑到的,要不然剪切的长度太大,可能剪过了,剪出一个没有数字的黑图片来。

    在rangle这行代码中,在原代码的基础上加入add_length,这个add_length的规则是中文字符长度占1,英文数字字符长度占1/2,这样来计算add_length;

    add_length = (keyword_len - 2)*sizes['width']/15        
    rangle = (int(locations['x'] + sizes['width']/4 + add_length), int(locations['y'] + sizes['height']/2),
    int(locations['x'] + sizes['width']*2/3), int(locations['y'] + sizes['height']))

    用cxfreeze打包的时候,python文件中用到的package 类,加在packages includes里,还有会遇到一些奇怪的问题,报ImportError 或 sys._MEIPASS 有关的错误,这时候直接把出错的代码注释掉即可,在tesseract.py文件中run_tesseract这个方法中,注释掉  _set_environment() 这行就可以了。

    build_exe_options = {
        'packages' : ['selenium', 'os', 're', 'time', 'codecs', 'pyocr'],
        'includes' : ['PIL', 'datetime'],
    }
  • 相关阅读:
    第一次项目总结
    8.16 CSS知识点7
    2016y9m22d 博文分享
    2016y9m8d
    2016y9m7d
    2016y9m6d
    2016y9m5d
    2016.9.2博文分享!
    2016y8m16d
    2016y8m15d
  • 原文地址:https://www.cnblogs.com/thinkers-dym/p/7092666.html
Copyright © 2011-2022 走看看