Python网页爬虫抓取商品及价格时多余夹杂字符如何去除
方案1:BeautifulSoup提取文本时直接清理(优先推荐)
调用get_text()方法时传入strip=True参数,会自动移除文本首尾的所有换行、制表符、回车等空白字符,是官方自带的原生功能,代码修改量最小、执行效率最高。
把你原来的这两行代码:
product_titles = [item.find(class_ = 'product_title').get_text() for item in items] product_prices = [item.find(class_ = 'product_price').get_text() for item in items]
替换为:
product_titles = [item.find(class_ = 'product_title').get_text(strip=True) for item in items] product_prices = [item.find(class_ = 'product_price').get_text(strip=True) for item in items]
如果部分文本中间也存在多个连续空白需要合并成单个空格,还可以额外加separator参数:
.get_text(separator=' ', strip=True)
方案2:pandas生成数据表后统一清理
如果你已经拿到了带空白的原始数据,不想修改前面的提取逻辑,也可以用pandas的字符串方法批量清理所有字段的首尾空白,在生成product_list之后、输出csv之前添加以下代码即可:
# 清理首尾空白 product_list['product_title'] = product_list['product_title'].str.strip() product_list['product_price'] = product_list['product_price'].str.strip() # 可选:清理字段内部的多余连续空白,替换为单个空格 product_list['product_title'] = product_list['product_title'].str.replace(r'\s+', ' ', regex=True)
内容的提问来源于stack exchange,提问作者coja56
相关产品推荐
相关产品推荐

