如何通过上传图片网址在Google上进行反向图片搜索?

我的目标是使Google反向图片搜索自动化。

我想上传图片网址,并获取包含匹配图片的所有网站链接。

这就是到目前为止我可以生产的东西:

import requests
import bs4

# Let's take a picture of Chicago
chicago = 'https://images.squarespace-cdn.com/content/v1/556e10f5e4b02ae09b8ce47d/1531155504475-KYOOS7EEGVDGMMUqqNX3/ke17ZwdGBToddI8pDm48kCf3-plT4th5YDY7kKLGSZN7gQa3H78H3Y0txjaiv_0fDoOvxcdMmMKkDsyUqMSsMWxHk725yiiHCCLfrh8O1z4YTzHvnKhyp6Da-NYroOW3ZGjoBKy3azqku80C789l0h8vX1l9k24HMAg-S2AFienIXE1YmmWqgE2PN2vVFAwNPldIHIfeNh3oAGoMooVv2g/Chi+edit-24.jpg'

# And let's take google image search uploader by url
googleimage = 'https://www.google.com/searchbyimage?&image_url='

# Here is our Chicago image url uploaded into google image search
url = googleimage+chicago

# And now let's request our Chichago google image search
response = requests.get(url)
soup = bs4.BeautifulSoup(response.text,'html.parser')

# Here is the output
print(soup.prettify())

我的问题是我没有想到此print(soup.prettify())输出。 我的输出内容太长,因此未包含在帖子中。

如果您输入浏览器:

https://www.google.com/searchbyimage?&image_url=https://images.squarespace-cdn.com/content/v1/556e10f5e4b02ae09b8ce47d/1531155504475-KYOOS7EEGVDGMMUqqNX3/ke17ZwdGBToddI8pDm48kCf3-plT4th5YDY7kKLGSZN7gQa3H78H3Y0txjaiv_0fDoOvxcdMmMKkDsyUqMSsMWxHk725yiiHCCLfrh8O1z4YTzHvnKhyp6Da-NYroOW3ZGjoBKy3azqku80C789l0h8vX1l9k24HMAg-S2AFienIXE1YmmWqgE2PN2vVFAwNPldIHIfeNh3oAGoMooVv2g/Chi+edit-24.jpg

您会发现html代码与我们在soup上的输出有所不同。

我期望soup代码会产生最终结果,因此我可以解析所需的链接。相反,我只有一些我不真正理解的怪异函数。

似乎Google图片搜索是一个三步过程:首先上传图片,然后使用奇怪的功能进行处理,然后得到最终结果。

如何像在浏览器中一样获得最终结果?因此,我可以像往常一样解析html代码。

liaozhongfa 回答:如何通过上传图片网址在Google上进行反向图片搜索?

让我为您解释。

使用print(response.history) 还有print(response.url

因此,如果它是200,那么您将获得一个网址,例如https://www.google.com/search?tbs=sbi:

但是如果它是302,那么您将获得一个诸如hhttps://www.google.com/webhp?tbs=sbi:

的网址。

对于302,这意味着Google将您检测为BOT,因此webhp = Web Hidden Path拒绝了您,它将请求转换为机器人检测并由Google进一步分析。

您可以确认是否按下了链接Click Here并检查浏览器bar中将显示什么。

enter image description here

  

这意味着您需要考虑页眉部分,才能使其处于正确的轨道。

使用以下方式。

from bs4 import BeautifulSoup
import requests

headers = {
    'Host': 'www.google.com','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0','Accept': '*/*','Accept-Language': 'en-US,en;q=0.5','Accept-Encoding': 'gzip,deflate,br','Referer': 'https://www.google.com/','Origin': 'https://www.google.com','Connection': 'keep-alive','Content-Length': '0','TE': 'Trailers'
}

r = requests.get("https://www.google.com/searchbyimage?image_url=https://images.squarespace-cdn.com/content/v1/556e10f5e4b02ae09b8ce47d/1531155504475-KYOOS7EEGVDGMMUQQNX3/ke17ZwdGBToddI8pDm48kCf3-plT4th5YDY7kKLGSZN7gQa3H78H3Y0txjaiv_0fDoOvxcdMmMKkDsyUqMSsMWxHk725yiiHCCLfrh8O1z4YTzHvnKhyp6Da-NYroOW3ZGjoBKy3azqku80C789l0h8vX1l9k24HMAg-S2AFienIXE1YmmWqgE2PN2vVFAwNPldIHIfeNh3oAGoMooVv2g/Chi+edit-24.jpg&encoded_image=&image_content=&filename=&hl=en",headers=headers)
soup = BeautifulSoup(r.text,'html.parser')
print(soup.prettify)
本文链接:https://www.f2er.com/2977906.html

大家都在问