使用 BeautifulSoup 时,html 在某些搜索结果中需要不同索引号中的数据
When using BeautifulSoup, html has needed data in a different index number in some search results
我遇到一个网站格式问题,导致容器中的某些信息在一个搜索结果和下一个搜索结果之间具有不同的索引号。
我正在从搜索结果中抓取一些数据。 location/Index 数字在少数情况下不同。
基本上,我需要从下面的 html 中抓取的确切文本是“7XB21”。
<dl class="last">
::before
<dt>Part Code:</dt>
<dd>
"7XB21"
<span class="separator">,</span>
< /dd>
<dt>Weight:</dt>
<dd>97</dd>
</dl>
使用下面的 Python 代码很容易做到,因为它得到了我需要的结果,即“7XB21”
modelcode_container = container.find_all("dd")
modelcode = (modelcode_container[5].text)
然而!
一些被抓取的 HTML 代码虽然结构相同,但缺少上面示例显示的一些信息。下面是麻烦的例子 HTML:
<dl class="last">
<dt>Stock id:</dt>
<dd>c12
<span class="separator">,</span>
</dd>
<dt>Part Code:</dt>
<dd>
"8B727"
<span class="separator">,</span>
</dd>
<dt>Weight:</dt>
<dd>102</dd>
</dl>
你看出区别了吗?我需要指定一个不同的索引号来捕获正确的数据,在这种情况下是“8B727”。
我不确定如何进行设置,如有任何帮助,我们将不胜感激。谢谢!
如果您确定 <dt>Part Code:</dt>
在此之前发生,您可以使用 find_next_sibling() 获取它旁边的 dd
标记。
soup.find('dt',text="Part Code:").find_next_sibling('dd')
我遇到一个网站格式问题,导致容器中的某些信息在一个搜索结果和下一个搜索结果之间具有不同的索引号。
我正在从搜索结果中抓取一些数据。 location/Index 数字在少数情况下不同。
基本上,我需要从下面的 html 中抓取的确切文本是“7XB21”。
<dl class="last">
::before
<dt>Part Code:</dt>
<dd>
"7XB21"
<span class="separator">,</span>
< /dd>
<dt>Weight:</dt>
<dd>97</dd>
</dl>
使用下面的 Python 代码很容易做到,因为它得到了我需要的结果,即“7XB21”
modelcode_container = container.find_all("dd")
modelcode = (modelcode_container[5].text)
然而! 一些被抓取的 HTML 代码虽然结构相同,但缺少上面示例显示的一些信息。下面是麻烦的例子 HTML:
<dl class="last">
<dt>Stock id:</dt>
<dd>c12
<span class="separator">,</span>
</dd>
<dt>Part Code:</dt>
<dd>
"8B727"
<span class="separator">,</span>
</dd>
<dt>Weight:</dt>
<dd>102</dd>
</dl>
你看出区别了吗?我需要指定一个不同的索引号来捕获正确的数据,在这种情况下是“8B727”。
我不确定如何进行设置,如有任何帮助,我们将不胜感激。谢谢!
如果您确定 <dt>Part Code:</dt>
在此之前发生,您可以使用 find_next_sibling() 获取它旁边的 dd
标记。
soup.find('dt',text="Part Code:").find_next_sibling('dd')