Python 在scrapy脚本中将空字段替换为0

Python 在scrapy脚本中将空字段替换为0,python,web-scraping,scrapy,screen-scraping,Python,Web Scraping,Scrapy,Screen Scraping,我正在编辑一个旧的潦草的脚本。对于某些页面,“浴室”字段不存在。如果它不存在,我想输入一个“0” 我可以用pandas发布流程,但现在我想在scrapy脚本中实现这一点 我试过了,但还是出错了 town.py“,第88行 其他: ^ SyntaxError:无效语法 bathrooms_txt = response.xpath(".//dt[contains(text(), 'Bathrooms')]/following-sibling::dd/text()").extract_first()

我正在编辑一个旧的潦草的脚本。对于某些页面,“浴室”字段不存在。如果它不存在,我想输入一个“0”

我可以用pandas发布流程,但现在我想在scrapy脚本中实现这一点

我试过了,但还是出错了

town.py“,第88行 其他: ^ SyntaxError:无效语法

bathrooms_txt = response.xpath(".//dt[contains(text(), 'Bathrooms')]/following-sibling::dd/text()").extract_first()
if bathrooms_txt == "":
    bathrooms = "0"
    else:
        bathrooms = bathrooms_txt
    except:
        pass

看起来你可能弄乱了你的try声明

你的意思是说:

bathrooms\u txt=response.xpath(.//dt[contains(text(),'bathrooms')]/following-sibling::dd/text())。extract\u first()
尝试:
如果浴室\u txt==“”:
浴室=“0”
其他:
浴室=浴室
除:
通过

看起来您可能弄乱了try语句

你的意思是说:

bathrooms\u txt=response.xpath(.//dt[contains(text(),'bathrooms')]/following-sibling::dd/text())。extract\u first()
尝试:
如果浴室\u txt==“”:
浴室=“0”
其他:
浴室=浴室
除:
通过
编辑piplines.py

def过程\项目(自身、项目、蜘蛛):
如果item.get('bathrooms_txt')为无:
项目['bathrooms_txt']=“0”
编辑piplines.py

def过程\项目(自身、项目、蜘蛛):
如果item.get('bathrooms_txt')为无:
项目['bathrooms_txt']=“0”

extract\u first
方法具有可用于此情况的
默认值
参数:

value = response.xpath("selector").extract_first(default="0")
或:


extract\u first
方法具有可用于这种情况的
default
参数:

value = response.xpath("selector").extract_first(default="0")
或:


缩进关闭。
else
except
块需要位于
if
-block levelPlus,
if
语句不支持
except
块。缩进关闭。
else
except
块需要位于
if
-block levelPlus,
if
语句ts不支持
,除了
区块。我尝试了你的建议,没有收到任何错误,但是“if”语句没有正确工作。“else:”语句没有正确工作。为了澄清,我正在查找房屋出售数据。当我刮地出售时,没有“浴室”“数据。所以我需要在那个点上放一个0。当前脚本将其保留为空。对不起,我不太擅长这个。如果else语句正确,我会检查一下浴室的实际输出。尝试打印其值并检查其类型(
type(bathrooms\u txt)
)。它可能不是空字符串。试着检查它的长度(
len(bathrooms\u txt)
)如果它是一条空白字符串,我的意思是你可能在if语句中检查了错误的东西(即不是
)我试过你的建议,没有收到错误,但是“if”语句没有正确工作。“else:”声明确实正确。为了澄清,我正在查找房屋待售数据。当我刮地出售时,没有“浴室”数据。所以我需要在那个点上放一个0。当前脚本将其保留为空。对不起,我不太擅长这个。如果else语句正确,我会检查一下浴室的实际输出。尝试打印其值并检查其类型(
type(bathrooms\u txt)
)。它可能不是空字符串。如果是空白字符串,请尝试检查其长度(
len(bathrooms\u txt)
),我的意思是,您可能在if语句中检查了错误的内容(即不是