python解析网页获取的数据如何去掉其中的空行ValueError: arrays must all be same length

今天做了一个python的一个比较小的实战案例:基于链家网二手房数据解析网页并从中获取如下信息:

  1. 标题
  2. 位置
  3. 房屋信息
  4. 关注人数 / 发布时间
  5. 房屋总价
  6. 房屋单价
  7. 备注信息

最后调用函数的时候报错ValueError: arrays must all be same length
如下面的两张图:
在这里插入图片描述
在这里插入图片描述
原来查看了一下他们的数据长度,发现有的数据长度为30,有的数据长度为60,如下图所示:
在这里插入图片描述
查看其中60的数据中,发现是空格和空行占据了1/2,如下图所示:
在这里插入图片描述
初步解决消除空格和空行的两种方法:

#写法一: 
#house_info_2 = [] 
#for i in house_info: 
#    house_info_2.append(re.sub('\s', '', i)) 
#写成如下形式:
house_info = html.xpath('//div[@class="info clear"]//div[@class="houseInfo"]/text()').extract() 
for i in house_info: 
    house_info.append(re.sub('\s', '', i))

#写法二:
#house_info_2 = [re.sub('\s', '', i) for i in house_info] 
#写成如下形式:
house_info1 = html.xpath('//div[@class="info clear"]//div[@class="houseInfo"]/text()').extract() 
house_info = [re.sub('\s', '', i) for i in house_info1] 
house_info

这种方法虽然把空格去掉了,但是有单引号单独占有的空行,长度仍为60,而其他数据的获取长度均为30
如下图所示:
在这里插入图片描述
再次进行修改:

#第一种——获取房屋信息
house_info = [re.sub('\s', '', i) for i in html.xpath('//li[@class="clear"]//div[@class="houseInfo"]/text()[2]').extract()]
print(len(house_info))

#第二种——获取房屋信息
house_info = [re.search(r'houseIcon"></span>(.*?)</div>', i, re.S).group(1)
              
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值