需求:
每次打开搜索引擎搜索一个关键字,都不会一次只看一个搜索结果。会分别打开前几个链接。即:打开浏览器,搜索关键字,在搜索结果中分别打开各个链接
为简化这个过程,实现通过命令行方式打开结果中的前5个链接
分析:
1.从命令行参数中获取查询关键字;
2.取得查询结果页面;
3.为每个结果打开一个浏览器选项卡;
意味着需要完成如下工作:
1.从sys.argv中读取命令行参数;
2.用requests模块取得查询结果页面;
3.找到每个查询结果的链接;
4.调用webbrowser.open()函数打开Web浏览器;
使用:
D:python_work est>python test.py python
代码:
import requests,bs4,sys,webbrowser # 1.读取命令行参数作为搜索关键字 res = requests.get('http://www.chinaso.com/search/pagesearch.htm?q=' + ' '.join(sys.argv[1:])) res.raise_for_status() #如果获取到结果,就什么都不做,否则抛出异常 # 2.获取CHINAso搜索结果的超级链接 soup = bs4.BeautifulSoup(res.text,features='html.parser') # # f = open('test.html','w',encoding='UTF-8') # f.write(str(soup.getText)) # f.close() linkelems = soup.select('.hintTopItem a') # 3.打开前5个超级链接 numOpen = min(5,len(linkelems)) for i in range(numOpen): webbrowser.open('http://www.chinaso.com' + linkelems[i].get('href'))