我正在使用Python-2.7和BeautifulSoup
如果我无法解释我想要的内容,请道歉
这个html页面中的数据嵌入在特定的结构中 我想拉数据忽略第一个块
但问题出在我做的时候 -
array_splice($store, $index, 1);
它还给了我第一个实际上是(不需要的html块)的块 -
self.tab = soup.findAll("div","listing-row")
我没有使用
("div","listing-row wide-featured-listing")
因为我希望所有名为“listing-row 的类只在整个页面中。
如何忽略名为“list-row wide-featured-listing”的课程?
任何形式的帮助/指导表示赞赏。非常感谢!
答案 0 :(得分:1)
或者,您可以使CSS selector与该类完全匹配listing-row
:
soup.select("div[class=listing-row]")
演示:
>>> from bs4 import BeautifulSoup
>>>
>>> data = """
... <div>
... <div class="listing-row">result1</div>
... <div class="listing-row wide-featured-listing">result2</div>
... <div class="listing-row">result3</div>
... </div>
... """
>>>
>>> soup = BeautifulSoup(data, "html.parser")
>>> print [row.text for row in soup.select("div[class=listing-row]")]
[u'result1', u'result3']
答案 1 :(得分:0)
您可以过滤掉该元素:
self.tab = [el for el in soup.find_all('div', class_='listing-row')
if 'wide-featured-listing' not in el.attr['class']]
您可以使用自定义功能:
self.tab = soup.find_all(lambda e: e.name == 'div' and
'listing-row' in e['class'] and
'wide-featured-listing' not in el.attr['class'])