我正在使用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方法时遇到了什么问题。
谢谢。
答案 0 :(得分:4)
如果要搜索与两个或更多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">
.
.
.