报错 ValueError: arrays must all be same length
小白学python,拿tap评论爬虫试水
就是找这个内容,count后面的数字“2”;
相关代码如下:
def get_comment_agree(bs):
comment_footer = bs.select(".review-item-text .item-text-header") # 选择页面中评论模块的尾部
pattern_agree = 'data-taptap-ajax-vote="count">(.*?)</span>'
agree = re.findall(pattern_agree,str(comment_footer),re.S)
return agree
agree_out = []
agree_tmp = get_comment_agree(star_bs)
agree_out.extend(agree_tmp)
result = {"comment": comment_out,
"score": score_out,
"comment_date": datetime_out,
"agree": agree_out}
resultpd = pd.DataFrame(result)
就是最后一步pd.DataFrame的时候报错了
ValueError: arrays must all be same length
应该是查找定位agree有问题,前三个没问题的,但是哪里错了呢
上面有个代码复制错了,
comment_footer = bs.select(".review-item-text .item-text-footer")
才对
result中的key-value;每个value的长度必须要一致。
报错的原因是里面有1个或多个value的长度不一致
我大概定位到是 agree 相关的value有问题,因为去掉这个就没报错;
用 pd.DataFrame.from_dict 也可以解决这个key-value的报错,但是行列就互换了,然后输出来的agree值是有问题的
但是我看不出来前面正则查找agree的时候问题出现在哪