我想从房地产网站上抓取信息以进行市场研究。 我现在的问题是,如果某所房屋没有我想要的全部信息(例如,房地产经纪人未将房屋的大小放到他的作品中),脚本将停止并且出现错误。
我已经用treeMap
/ if
语句尝试过,但是我犯了一些错误,因此它不能这样工作。
我收到错误消息:
“ UnboundLocalError:之前引用的本地变量'Flattyp' 作业”
else
答案 0 :(得分:0)
错误在这里:
if Flattyp != str(sourceCode).split('"is24qa-typ grid-item three-fifths">')[1].split('</dd> </dl> <dl class')[0]:
Flattyp = "nicht vorhanden"
else:
Flattyp = str(sourceCode).split('"is24qa-typ grid-item three-fifths">')[1].split('</dd> </dl> <dl class')[0]
在第一次迭代时,您将Flattyp
与某些内容进行比较,并且尚未设置Flattyp
。
对于您的第一个问题,您是否听说过try/catch条声明?
您应该对请求的响应进行一次解码,而不是多次将其强制转换为字符串:
sourceCode = urllib.request.urlopen(
'https://www.immobilienscout24.de/expose/' + str(id)
).read().decode('utf8')
最后,绝对不要使用str函数(regexp,split)来解析html。使用适当的HTML解析器,例如beautifulsoup。