当前位置:嗨网首页>书籍在线阅读

24-第3步_针对每个结果打开Web浏览器

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

第3步:针对每个结果打开Web浏览器

最后,我们将告诉程序,针对结果打开Web浏览器标签页。将下面的内容添加到程序的末尾:

#! python3
# searchpypi.py - Opens several search results.
import requests, sys, webbrowser, bs4
--snip--
# Open a browser tab for each result.
linkElems = soup.select('.package-snippet')
numOpen = min(5, len(linkElems))
for i in range(numOpen):
 urlToOpen = 'https://' + linkElems[i].get('href')
 print('Opening', urlToOpen)
 webbrowser.open(urlToOpen)

在默认情况下,你会使用 webbrowser 模块以在新的标签页中打开前5个查询结果。但是,用户查询的主题可能少于5个查询结果。 soup.select() 调用返回一个列表,该列表包含匹配 '.r a' 选择器的所有元素,因此打开标签页的数目要么是5,要么是这个列表的长度(取决于哪一个更小)。

内置的Python函数 min() 返回传入的整型或浮点型参数中最小的一个(也有内置的 max() 函数,返回传入的参数中最大的一个)。你可以使用 min() 弄清楚该列表中的链接是否少于5个,并且将要打开的链接数保存在变量 numOpen 中。然后可以调用 range(numOpen) 来执行一个 for 循环。

在该循环的每次迭代中,你会使用 webbrowser.open() 在Web浏览器中打开一个新的标签页。请注意,返回的 <a> 元素的 href 属性中不包含初始的Google网址部分,因此必须连接它和 href 属性的字符串。

现在可以马上打开前5个PyPI查找结果,例如,要查找 boring stuff ,你只要在命令行中运行 searchpypi boring stuff! (了解如何在你的操作系统中方便地运行程序,请参看附录B)。