爬虫错误笔记

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'

原文地址:https://www.cnblogs.com/flippedkiki/p/5707882.html