因此,我一直在阅读在线书籍“使用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. 在本书中,目标是获取显示在Google搜索的搜索结果页上的所有链接。为此,作者使用了soup.select('r .a')行。但是,当我使用检查器时,会出现“ a href”标签。
我个人也想抓住显示在搜索结果页面上的链接的标题/标题。检查器突出显示“ h3 class”标签。我试图通过告诉select查找class属性等于“ LC20lb”的标签来进行选择,但是我一直得到一个空列表作为输出。
所以我的问题是,一旦检查员帮助我们缩小了关注范围,我们如何知道哪个标签是合适的选择?就像作者是怎么知道的,我们应该使用'.r a'代替“ a href”标记吗?通常,一旦选择器向我显示了某个特定元素,我应该选择多远的距离,即哪个祖先?
答案 0 :(得分:0)
如果您执行“ a href”,则未指定div类,因此它将获取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>
soup.select('。r a')正在获取“ r” div类(即搜索结果)中的所有a标签,而不是href标签的所有实例。
希望这能回答您的问题!