【工作日常】Google 以图搜图 调研

结论:

利用 模拟http请求 , 检索并处理 html文本数据 可以实现.

(性能方面考虑 , 优先考虑使用 模拟请求的方式 , 最后兜底考虑 selenium driver)

风险:

如果网页的数据结构变化 , 要重新编写检索和处理 文本数据的逻辑.

具体过程:

使用工具:

fiddler , chrome , 代码实现 http 请求以及响应处理

过程:

2.1 获取请求
  • 使用 fiddler 抓包 ,抓取点击 search 按钮 时触发的请求

  • 打开 chrome 控制台 , 抓取 点击 see Exact matches 按钮时触发的请求

抓到请求的结果具体见文档:Google 以图搜图核心请求

2.2 分析请求 , 逐个删除请求头每个属性数据以及请求体每个属性数据 , 排查出影响请求复用的关键属性 .

最终确认 :

请求一的变量关键有两个:

  1. 图片url
  2. 请求头需要 User-Agent (例如 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3)

请求二的变量关键有两个:

  1. 我命名为 imageKey , 是在 请求一 返回的响应 html 数据中 (例子 : lens-web-standalone-prod/4020b005-4ded-4bd7-af47-31a5d7bc4bb7)
  2. 我命名为 imageToken , 是在 请求一 返回的响应 html 数据中 (例子:EkcKJDVmMDc3Y2M1LTU1ZTYtNGQ5My05Y2VhLWRhZGVmNTQ3MmQ0ZRIfazBBMDhjSVYzRElXOEdtc3p4TWZDbHRYUU1jQi1oZw\u003d\u003d)
2.3 分析请求响应 , 获取用于第二个请求的核心变量值 (通过对第二个请求分析请求 , 并在第一个请求的响应中搜索)
2.4 编写代码模拟 Google 以图搜图 代码
posted @ 2024-12-02 19:42  rongbu2  阅读(63)  评论(0)    收藏  举报