我在使用beautifulsoup解析一些html时遇到问题。
例如,在这篇HTML中,我想提取目标文本。 HTML代码中的更多HTML是这样的,所以我想提取所有目标文本。我还想提取“tt0082971”并将该数字和目标文本放在制表符分隔文件的两行中。 'tt'之后的数字会针对目标文本的每个实例进行更改。
<td class="target">
<span class="wlb_wrapper" data-caller-name="search" data-size="small" data-tconst="tt0082971">
</span>
<a href="/target/tt0082971/">
Target Text 1
</a>
答案 0 :(得分:0)
BeautifulSoup.select
接受CSS Selectors:
>>> from bs4 import BeautifulSoup
>>>
>>> html = '''
... <td class="target">
... <span class="wlb_wrapper" data-caller-name="search" data-size="small" data-tconst="tt0082971">
... </span>
... <a href="/target/tt0082971/">
... Target Text 1
... </a>
... </td>
... '''
>>> soup = BeautifulSoup(html)
>>> for td in soup.select('td.target'):
... span = td.select('span.wlb_wrapper')
... if span:
... print span[0].get('data-tconst') # To get `tt0082971`
... print td.a.text.strip() # To get target text
...
tt0082971
Target Text 1