如何从网站上抓取信息,如果信息不存在,则跳到下一点

时间:2019-06-20 08:11:17

标签: python if-statement web-scraping

我想从房地产网站上抓取信息以进行市场研究。 我现在的问题是,如果某所房屋没有我想要的全部信息(例如,房地产经纪人未将房屋的大小放到他的作品中),脚本将停止并且出现错误。

我已经用treeMap / if语句尝试过,但是我犯了一些错误,因此它不能这样工作。 我收到错误消息:

  

“ UnboundLocalError:之前引用的本地变量'Flattyp'   作业”

else

1 个答案:

答案 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