soup.find_all有效,但是汤。选择不起作用

时间:2017-07-09 20:02:26

标签: python beautifulsoup css-selectors

我正在使用css选择器解析html页面

import requests
import webbrowser
from bs4 import BeautifulSoup

page = requests.get('http://www.marketwatch.com',  headers={'User-Agent': 'Mozilla/5.0'})
soup = BeautifulSoup(page.content, 'html.parser')

使用select方法时,我在使用类选择列表标记时遇到问题。但是,使用find_all方法时我没有问题

soup.find_all('ul', class_= "latestNews j-scrollElement")

这会返回我想要的输出,但出于某种原因,我无法使用相同的输出 css选择器。我想知道我做错了什么。

这是我的尝试:

soup.select("ul .latestNews j-scrollElement")

返回一个空列表。

我无法弄清楚我在使用select方法时遇到了什么问题。

谢谢。

1 个答案:

答案 0 :(得分:4)

来自documentation

  

如果要搜索与两个或更多CSS类匹配的标记,则为您   应该使用CSS选择器:

css_soup.select("p.strikeout.body")

在你的情况下,你会这样称呼它:

In [1588]: soup.select("ul.latestNews.j-scrollElement")
Out[1588]: 
[<ul class="latestNews j-scrollElement" data-track-code="MW_Header_Latest News|MW_Header_Latest News_Facebook|MW_Header_Latest News_Twitter" data-track-query=".latestNews__headline a|a.icon--facebook|a.icon--twitter">
 .
 .
 .