我是python
的新手。我想使用BeautifulSoup
获取论坛中的发布日期。我尝试了许多方法,但无法获得正确的结果。
这是我的问题:
<td class = by>
<cite>...</cite>
<em>
<span>2015-11-13</span>
</em>
</td>
<td class = ...>...</td>
<td class = by>...</td>
<cite>...</cite>
<em><a>...</a></em>
</td>
有2个同名的课程“ by
”,但我只希望第一个带有“ span
”标签的日期。
这是我尝试过的,但不知道出了什么问题:
cat=1
for span in soup.findAll('span', {'class':"by"}):
print (span.text)
答案 0 :(得分:1)
一个通用的解决方案是遍历<td>
的{{1}}并找到class='by'
。
从bs4导入BeautifulSoup
<span>
一种更直接的方法是
a="""<td class = by>
<cite>...</cite>
<em>
<span>2015-11-13</span>
</em>
</td>
<td class = ...>...</td>
<td class = by>...</td>
<cite>...</cite>
<em><a>...</a></em>
</td>"""
soup = BeautifulSoup(a, 'html.parser')
for item in soup.find_all("td",{"class": "by"}):
for i in item.find_all("span"):
print(i.text) # 2015-11-13
如果您只关心第一次出现的情况,则可以使用@Jon Clements的建议
soup.select('td.by > em > span')[0].text # 2015-11-13