我正在尝试使用一个程序来返回Google搜索的第一张图片的图片链接。
我想要获得的链接是,如果您单击第一个图像,右键单击出现的图像,然后打开图像。我目前的代码是。
r = requests.get(theurl)
soup = BeautifulSoup(r.text,"lxml")
link = soup.find('img', class_='irc_mi')['src']
return link
但是我收到的类型错误是" TypeError:' NoneType'对象不是可订阅的"。
答案 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