我目前正在使用Beautifulsoup进行爬虫。我想获得无序列表中特定孩子的数据。
所以网页基本上是这样的:
<div class= product-list-item--usp-list>
<ul class="unordered-list">
<li>a</li>
<li>b</li>
<li>c</li>
</ul>
我目前只收到第0个孩子(a)的内容。我只想得到第一个孩子(b&amp; c)的第一个内容。 我的代码是这样的:
a = item.find("ul", class_="unordered-list").li
b = item.find("ul", class_="unordered-list").li
所以我试过这个: a = item.find(&#34; ul&#34;,class _ =&#34; unordered-list&#34;)。li [1] b = item.find(&#34; ul&#34;,class _ =&#34; unordered-list&#34;)。li [2]
这是我的错误:
a = item.find("ul", class_="unordered-list").li[1]
File "/usr/local/lib/python2.7/dist-packages/bs4/element.py", line 905, in __getitem__
return self.attrs[key]
KeyError: 1
[Finished in 2.9s with exit code 1]
我的问题是:我如何收到child[1]
和child[2
]的内容?
提前谢谢!
答案 0 :(得分:0)
你可以这样做。
>>> from bs4 import BeautifulSoup
>>> s = """<div class= product-list-item--usp-list>
<ul class="unordered-list">
<li>a</li>
<li>b</li>
<li>c</li>
</ul> """
>>> soup = BeautifulSoup(s)
>>> foo = soup.find("ul", class_="unordered-list")
>>> [i.text for i in foo.find_all('li')[1:]]
['b', 'c']