python - 在网页上使用 Beautiful Soup 与 CSS 选择器时 CSS 类名称不匹配
问题描述
我是 Python 的初学者,目前正在学习如何使用这本书进行网络爬虫。
我正在尝试编写一个程序,我可以在其中进行谷歌搜索,并让程序打开搜索结果中出现的前五个链接。目标是找到<a href='link'>
标签正上方的类的名称。
标签如下所示:
<div class = placeholder>
<a href = link>
但是,当我试图选择一个css选择器时,当我使用beautiful soup时选择器没有出现,我必须通过复制粘贴beautiful soup解析的html和css来手动搜索它。为什么会这样?
代码:
res = requests.get('https://google.com/search?q=beautiful+soup')
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, 'html.parser')
linkElems = soup.select(".kCrYT a")
numLinks = min(5, len(linkElems))
for i in range(numLinks):
webbrowser.open('https://google.com' + linkElems[i].get('href'))
我通过运行“soup”手动找到的 css 选择器是kCrYT
,但是在 chrome 中打开时,类名是r
. 为什么会这样?
解决方案
推荐阅读
- javascript - 当我再次按下按钮时,信息将被更新而不是添加
- docusignapi - Docusign:连接侦听器通信错误需要 HTTPS
- r - r - 读取多个文件并按组从列中选择最大值
- sql - 表和视图索引比较和 CTE 迭代
- reactjs - React - 声明但从未使用过的类,但它已被使用
- python - GCP 数据流,argparse.ArgumentError 使用 DataflowRunner 但不是 DirectRunner
- python - 指向文件位置时在代码中使用 sys.path[0] 是否安全
- c# - float / double / decimal 中的精度数字是什么意思?
- c# - C#:Opera 58.x 的问题 操作员 2.42 | Selenium 3.141 - 无法访问 Opera
- jquery - Jquery onclick toggleClass - 需要三次点击而不是两次