美丽的汤django解析

时间:2019-03-22 12:44:52

标签: django beautifulsoup

我需要从带有标签描述的XML文件中获取数据/字符串。我有:

<description>&lt;img src="https://www.somepicture.jpeg" align="left" hspace="8" width="400" height="200" /&gt; DESCRIPTION TEXT I WANT TO PARSE </description>

我也使用BeautifoulSoup4和Django,之前我制作了新的汤,从中解析一项。如果我尝试“ item.description.text”,我也会得到这个img标签。 我该如何逃避它,并得到所需的描述?

编辑:需要将此解析后的文本保存在数据库中。喜欢:

for item in items: 
  tagA = item.tagA.text
  tagB = item.tagB.text
  description = item.description.text  <--- here's parsed text that I need without img tag
  model = MyModel.objects.create(tag_a_field=tagA, tag_b_field=tagB, description_field=description)
  model.save()            

谢谢

2 个答案:

答案 0 :(得分:0)

您可以尝试以下操作:

schedule[1].parameter01 = 19

答案 1 :(得分:0)

这里的问题是img部分旨在作为文本。这是描述的一部分,因此,BeautifulSoup不会将其解析为html标签。

解决问题的一种幼稚方法是再次解析该文本:

html = '<description>&lt;img src="https://www.somepicture.jpeg" align="left" hspace="8" width="400" height="200" /&gt; DESCRIPTION TEXT I WANT TO PARSE </description>'
soup = BeautifulSoup(html)
description_soup = BeautifulSoup(soup.description.text)
description_soup.text
>>> ' DESCRIPTION TEXT I WANT TO PARSE '

在您的情况下(根据提供的一些信息),您可以编写如下内容:

for item in items:
    tagA = item.tagA.text
    tagB = item.tagB.text
    description_soup = BeautifulSoup(item.description.text)
    description = description_soup.text
    MyModel.objects.create(tag_a_field=tagA, tag_b_field=tagB, description_field=description)