尝试使用beautifulsoup4提取谷歌搜索的第一个图像的源链接

时间:2018-04-21 04:59:48

标签: python python-3.x beautifulsoup

我正在尝试使用一个程序来返回Google搜索的第一张图片的图片链接。

我想要获得的链接是,如果您单击第一个图像,右键单击出现的图像,然后打开图像。我目前的代码是。

r = requests.get(theurl)
soup = BeautifulSoup(r.text,"lxml")
link = soup.find('img', class_='irc_mi')['src']
return link

但是我收到的类型错误是" TypeError:' NoneType'对象不是可订阅的"。

2 个答案:

答案 0 :(得分:1)

由于JavaScript在浏览器中运行,似乎添加了src属性。您可以使用Requests-HTML来实现目标:

from requests_html import HTMLSession

session = HTMLSession()
url = 'https://www.google.pl/search?q=python&source=lnms&tbm=isch&sa=X&ved=0ahUKEwif6Zq7i8vaAhVMLVAKHUDkDa4Q_AUICigB&biw=1280&bih=681'
r = session.get(url)
r.html.render()

first_image = r.html.find('.rg_ic.rg_i', first=True)
link = first_image.attrs['src']

答案 1 :(得分:0)

你有一个拼写错误 - _class而不是class

另外 - 您实际上并不需要提供类名属性。

r = requests.get(theurl)
soup = BeautifulSoup(r.text, "lxml")
link = soup.find("img", "irc_mi")["src"]
return link