• 用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'],
    }
  • 相关阅读:
    Leetcode Array 4 Median of Two Sorted Arrays
    vscode Python Pylint(代码检测插件)
    Leetcode Array 1 twoSum
    mysql 配置 安装和 root password 更改
    vscode 编译调试c/c++的环境配置
    chm文件打不开的解决办法
    A + B Problem II
    欢天喜地七仙女——代码规范与计划
    欢天喜地七仙女——项目系统设计与数据库设计
    欢天喜地七仙女——团队Gitee实战训练
  • 原文地址:https://www.cnblogs.com/thinkers-dym/p/7092666.html
Copyright © 2020-2023  润新知