Python 在scrapy脚本中将空字段替换为0
我正在编辑一个旧的潦草的脚本。对于某些页面,“浴室”字段不存在。如果它不存在,我想输入一个“0” 我可以用pandas发布流程,但现在我想在scrapy脚本中实现这一点 我试过了,但还是出错了 town.py“,第88行 其他: ^ SyntaxError:无效语法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()
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语句中检查了错误的内容(即不是”
)