此时我一直在使用python 3.6开发一个网络爬虫,但是这个代码遇到了麻烦。我需要分别从每个“dd”收集文本数据。我可以通过使用“class_ = first”代码首先告诉“dd”。但我很困惑如何分别收集第二个“dd”和第三个“dd”没有“class”。
另外,我想分别从第二个“dd”收集文本数据(例如2012 | 4月)。
请给我一些建议。
感谢。
(代码)
<dd class="first">
<span class="t">Plate Number</span>
<span class="s">43-3180</span>
</dd>
<dd>
<span class="t">Year</span>
<span class="s"><em class="red">2012 Apr.</em></span>
</dd>
<dd>
<span class="t">Mileage</span>
<span class="s"><em class="red">60,000 km</em></span>
</dd>
答案 0 :(得分:0)
您应该使用BeautifulSoup:
from bs4 import BeautifulSoup
html = '''<dd class="first">
<span class="t">Plate Number</span>
<span class="s">43-3180</span>
</dd>
<dd>
<span class="t">Year</span>
<span class="s"><em class="red">2012 Apr.</em></span>
</dd>
<dd>
<span class="t">Mileage</span>
<span class="s"><em class="red">60,000 km</em></span>
</dd>
'''
soup = BeautifulSoup(html, 'html.parser')
dds = soup.find_all('dd')
for dd in dds:
span_t = dd.find_all('span', {'class': 't'})[0]
span_s = dd.find_all('span', {'class': 's'})[0]
print(span_t.text)
print(span_s.text)
>> Plate Number
43-3180
Year
2012 Apr.
Mileage
60,000 km