Python 如何从请求中获取更多标记。get()

Python 如何从请求中获取更多标记。get(),python,beautifulsoup,python-requests,Python,Beautifulsoup,Python Requests,我正在尝试从这里获取图像 您可以使用Chrome开发者工具检查是否有很多“img”标记。然而,当我运行下面的代码时,我很失望地看到数字21。我怎样才能增加呢 r=requests.get(url) soup=bsp(r.text,'lxml') len(soup.find_all('img')) 问题在于,谷歌提供的静态页面实际上并不包含任何图像搜索结果。如果你获取结果中包含的图像,你会发现谷歌徽标和一些结构图像——可能是他们用来建议搜索优化的标签 实际的图像是由Javascript代码延迟

我正在尝试从这里获取图像

您可以使用Chrome开发者工具检查是否有很多“img”标记。然而,当我运行下面的代码时,我很失望地看到数字21。我怎样才能增加呢

r=requests.get(url)
soup=bsp(r.text,'lxml')
len(soup.find_all('img'))

问题在于,谷歌提供的静态页面实际上并不包含任何图像搜索结果。如果你获取结果中包含的图像,你会发现谷歌徽标和一些结构图像——可能是他们用来建议搜索优化的标签

实际的图像是由Javascript代码延迟加载的,而获取那些使用请求的图像是非常困难的——这意味着您要使用浏览器的工具检查页面的客户端代码对服务器执行的请求,并模仿这些请求。这可能是可行的,也可能是不可行的,因为谷歌很容易在惰性请求中插入一些标记和预计算,而这些请求很难从页面上的Javascript进行反向工程。而且,它很可能违反了谷歌图像搜索的使用条款

您可以尝试切换到进行web搜索,而不是请求。由于它使用真正的浏览器,它将运行Javascript并发出实际的延迟请求。它会起作用,但你仍然会违反网站的使用条款,而且你可能不久就会在结果中获得验证码

所以,做这类事情的正确方法是检查服务提供商——本例中的谷歌图像搜索——是否有一个公共API,您可以使用它来执行搜索。在搜索时,您会发现Google图像搜索API是一个不受欢迎的东西,现在可以使用Google搜索API来查找图像。目前他们每天允许100次免费搜索,此后将收取服务费

下面是他们了解API的链接,可能还有注册的链接

理解并获取API密钥后,API有一个Python包装器,它可以让您省去很多麻烦,并可能为您提供图像的URL:


非常感谢您的长篇大论!!!!这很有帮助。但是,不管答案如何,我都通过多次使用virous搜索关键字来解决问题,而不是一次搜索就找到照片。无论如何,我的代码可以在一次搜索中获得20张照片。