【问题标题】:Choosing the appropriate tag to pass into the select method of BeautifulSoup选择合适的标签传递给 BeautifulSoup 的 select 方法
【发布时间】:2019-07-09 21:42:47
【问题描述】:

所以我一直在阅读在线书籍“使用 Python 自动化无聊的东西”,并且正在学习 BeautifulSoup。我的问题是我似乎无法根据我在 Chrome 中使用开发人员的工具找到的内容来选择合适的标签。

<div data-hveid=.....>
  <div class="rc">
   <a href="https://www.python.org/".....>
        <h3 class="LC20lb">Welcome to Python.org</h3>
# Using select to grab links to search results. 
linkElems = soup.select('r .a')

An example of the inspector results. 在本书中,目标是获取所有出现在谷歌搜索结果页面上的链接。为此作者使用了soup.select('r .a') 行。但是当我使用检查器时,我会看到“a href”标签。

我自己也想抓取显示在搜索结果页面上的链接的标题/标题。检查器突出显示“h3 类”标签。我试图通过告诉 select 查找类属性等于“LC20lb”的标签来选择它,但我一直得到一个空列表作为输出。

所以我的问题是,一旦检查员帮助我们缩小焦点,我们如何知道哪个标签是合适的选择?就像作者怎么知道我们应该使用“.r a”而不是“a href”标签?一般来说,一旦选择器向我展示了特定元素,我应该选择多远,即哪个祖先?

【问题讨论】:

  • 你的问题是什么?
  • 对不起,由于某种原因,我写的部分内容没有发布。我已将其添加为编辑。

标签: python css beautifulsoup css-selectors


【解决方案1】:

如果您执行“a href”,则您尚未指定 div 类,因此它将获取 a href 的所有实例,其中将包括指向地图和驱动器等内容的链接。在您引用的代码中,你错过了 "r" div 类

    <div data-hveid=.....>
      <div class="rc">
        <div class="r">        
          <a href="https://www.python.org/".....>
            <h3 class="LC20lb">Welcome to Python.org</h3>

sosoup.select('.r a') 正在获取 "r" div 类(即搜索结果)中的所有 a 标签,而不是 a href 标签的所有实例。

希望这能回答你的问题!

【讨论】:

猜你喜欢
相关资源
最近更新 更多
热门标签