zoukankan      html  css  js  c++  java
  • 爬虫错误笔记

    1.当出现一连串print,假如前面print出来后面print不出,而后面print出来前面print不出来时,很有可能是中间的print环节出错了(而第二次注释前面的print把它注释掉啦~),这时候要测试它的错误时(因为之前有用try,except:break把它们包住),所以只要把except 改成except Erroe,e: print error break来测试错误在哪,最后就可以找出错误的原因并进行改正就可以了。

    2.假如要通过大循环里的一个小环节为空(比如最终的request_url为空)来使程序跳出整个循环,代码可如下:
    if not request_url:
    break
    即可跳出整个循环。


    问题3:当碰到网站要翻页抓取网址的时候,在网页源代码找不到终止页面的时候,如何进行翻页而不报错。

    解决方案:将翻页部分的代码放到一个死循环里,当翻页翻到终止页面的下一页时,由于抓取不到任何东西,此时网页报错,跳出当前循环(“exceptbreak”),问题解决完毕。


    问题3:用正则表达式将一段字符串匹配下来时,还想匹配该字符串的中间部分。

    解决方案:此时可用re.complie方法,先设置根据该字符串设置一个pattern,再用re.compliegroup()方法得到字符串的中间部分,问题解决完毕。


    问题5:当把印度尼西亚语的日期截取下来时,如何将此日期转成所需格式(即如:如何将'Isnin, 11 Julai 2016'转成‘2016-07-11’?)

    'Isnin, 11 Julai 2016'抓取下来后,令pub_time= 'Isnin, 11 Julai 2016',代码如下:

    mons = {…...,'Julai':'07',......}

    pub_time = pub_time.strip','

    pub_time = pub_time[1].strip' '

    year = pub_time[2]

    day = pub_time[0]

    mon = mons(pub_time[1])

    pub_time = year + '-' +mon + '-' + day

    即可将外文日期格式转化成'%y- mon + '%m-%d'

  • 相关阅读:
    asm volatile ("B .")
    最大熵学习笔记(一)预备知识
    12、Cocos2dx 3.0游戏开发找小三之3.0中的生命周期分析
    Android中通过反射来设置Toast的显示时间
    Linux Centos7 Apache 訪问 You don't have permission to access / on this server.
    校园双选会,你都懂么
    关于虚继承和析构函数的一个奇怪的问题
    Codeforces Round #252 (Div. 2)B. Valera and Fruits
    P3809 【模版】后缀排序
    752. [BJOI2006] 狼抓兔子
  • 原文地址:https://www.cnblogs.com/flippedkiki/p/5707882.html
Copyright © 2011-2022 走看看