2017-02-18 77 views
0

我试图抓取所有相关的链接,该链接显示在使用bs4的任何给定查询的结果页上,然后在新窗口中打开它们。无法使用BeautifulSoup检索谷歌搜索结果页面上的链接

问题是,我没有得到相关链接。对于任何给定的查询,我的脚本将链接返回到诸如Gmail,谷歌图片等 - 而不是与查询相关的链接。

#!/usr/bin/python3 
import webbrowser as wb 
import requests 
import bs4 as bs 



search=input() 
url="https://www.google.ae/?gfe_rd=cr&ei=mgSoWKmWO-aG7gTgmJ2QDA&gws_rd=ssl#q="+search 
#print(url) 
user_agent = {'User-Agent': 'Mozilla/5.0'} 

#headers['User-Agent'] = 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.27 Safari/537.17' 

req=requests.get(url,headers=user_agent) 
soup=bs.BeautifulSoup(req.text,"lxml") 
print(req.status_code) 
count=0 
for link in soup.find_all("a"): 
    print(link.get("href")) 
    if search in link.text: 
     wb.open(link.get("href")) 

我试图改变我的用户代理来一个很老的一个在谷歌可能会恢复到HTML的希望,但没有这样的运气与。

我知道它有可能检索与谷歌搜索API的链接,但我很想知道是否有任何方法可以用bs4完成工作。

回答

1

您可以使用google包,它可以直观地访问谷歌的搜索结果。

from google import search 
for result in search('example'): 
    print(result)