美文网首页
python爬虫-问题记录

python爬虫-问题记录

作者: 笑破天 | 来源:发表于2021-08-09 16:11 被阅读0次

    1、Python KeyError异常
    如果用dict[key]这个读取会报KeyError异,dict.get方法主要是提供一个取不到对应key的value就返回默认值的功能

    2、openpyxl.utils.exceptions.IllegalCharacterError
    如果是手动调用 xlwt 这种第三方库除了错可能没法找错误,但是从错误中我们看到错误是由 openpyxl 抛出的,我们试着从 openpyxl 中找解决方案
    出错处的代码
    value = value[:32767]
    if next(ILLEGAL_CHARACTERS_RE.finditer(value), None):
    raise IllegalCharacterError
    return value
    意思很明显了, 如果找非非法字符则抛出错误,ILLEGAL_CHARACTERS_RE 就定义了非法字符,它是这样的
    ILLEGAL_CHARACTERS_RE = re.compile(r'[00-10]|[13-14]|[16-37]')
    所以处理 content 时用这个正则去掉非法字符即可
    content = ILLEGAL_CHARACTERS_RE.sub(r'', content)

    3、response.json()报错
    raise JSONDecodeError("Expecting value", s, err.value) from None
    json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
    原因:post传参要用data参数,不能直接拼接在url后面

    4、openpyxl设置cell背景色
    问题:PatternFill(bgColor='20BA72', fill_type="solid")无效
    原因:bgColor改成fgColor

    5、程序异常中断时执行代码
    场景:ctrl+C或其他意外崩溃时,希望能保存一下数据
    方法:把所有代码放到try except里面

        try:
            main()
        except BaseException as e:
            print('error: %s' % e)
            print('do something')
    

    6、常见俩错误
    错误:Message: unknown error: session deleted because of page crash
    from unknown error: cannot determine loading status
    from tab crashed
    原因:浏览器莫名崩溃

    错误:Message: element click intercepted: Element <a class="TopicLink" href="//www.zhihu.com/topic/20059280" target="_blank" data-za-detail-view-id="3942">...</a> is not clickable at point (291, 255). Other element would receive the click: <div class="NumberBoard-itemName">...</div>
    原因:可点击元素高亮状态会弹一个弹窗,盖住了将要点击的区域

    7、程序意外停止后重启?
    在程序中断代码处重新调用方法

    8、元素高亮?

    # 记录元素修改前的border样式
    self.border = self.ele.value_of_css_property('border')
    # 记录元素修改前的border样式
    self.border = self.ele.value_of_css_property('border')
    # 将border样式还原
    self.driver.execute_script(f'arguments[0].style.border="{self.border}";', self.ele)
    

    9、SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED]
    python使用requests库发送https请求报错。
    方法:设置verify=False即可。requests.post(url, data = data, headers = header, verify=False)

    10、RuntimeWarning: Glyph 29575 missing from current font.
    font.set_text(s, 0, flags=flags)
    原因:matplotlib默认不支持中文。在Linux环境下没有中文字体,使用使用了默认的字体,但是默认的字体不支持中文,产生了乱码。
    解决:https://www.yuque.com/fcant/python/ptzo53
    命令:matplotlib.matplotlib_fname()、matplotlib.get_cachedir()
    注意:font.sans-serif里面SimHei要放在第一个,否则不生效。

    11、plt.savefig()保存的图片为空白
    原因:plt.show()之后会默认打开一个新的空白画板。把plt.savefig()放在plt.show()之前运行就行。
    plt.figure(figsize=(6, 6.5))也要注意放在最前面才生效

    12、取list最后几个元素
    list[-3:] # 取list最后3个元素,是个数组
    list[-3] # 取list倒数第3个元素,是个元素

    13、Mac查看Chrome的cookie目录
    浏览器输入chrome://version/,个人资料路径就是cookie路径

    遗留问题
    1、不占用浏览器?
    2、运行完成发送邮件?

    相关文章

      网友评论

          本文标题:python爬虫-问题记录

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