从 Bing 图像搜索结果中抓取 URL

Scraping URLs from Bing image search results

提问人:nba2020 提问时间:8/3/2023 最后编辑:Konrad Rudolphnba2020 更新时间:10/18/2023 访问量:99

问:

我正在 R 中构建一个抓取脚本,用于从搜索引擎获取产品图像。在当前阶段,我已经设法使用以下代码片段从 Google 图片搜索中成功获取包含图像的 URL:

google_urls <- GET("https://www.google.com/search?q=WWF%20CUB%20CLUB%20WWF16215003&tbm=isch", user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36") %>%
                 read_html() %>%
                 html_nodes(xpath = "//td/a") %>% 
                 html_attr("href") %>%
                 `[`(str_detect(., "/url\\?")) %>%
                 strsplit("=|\\&") %>%
                 sapply(`[`, 2)

为了扩展抓取解决方案的搜索范围,我还希望从 Bing 中抓取类似的 URL。但是,当我为 Bing 复制以下代码时,我没有得到任何结果。事实上,bing_urls在运行代码块时是空的。

bing_urls <- GET("https://www.bing.com/images/search?q=WWF%20CUB%20CLUB%20WWF16215003", user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36") %>%
                read_html() %>%
                html_nodes(xpath = "//td/a") %>% 
                html_attr("href") %>%
                `[`(str_detect(., "/url\\?")) %>%
                strsplit("=|\\&") %>%
                sapply(`[`, 2)

如何修改 bing 代码块以获得与 Google 初始 URL 相似的 URL 类型?

R Web-scraping Rvest 必应

评论

0赞 Mark 8/3/2023
嗨,NBA2020!我运行了您的代码,第一个代码实际上并没有获取图像的 URL,而是获取它们所来自的页面的 URL。这是您想要的,还是您想要实际的文件 URL?
0赞 nba2020 8/3/2023
谢谢@Mark。事实上,我想获取它们所来自的页面的 URL。我在代码流的稍后阶段处理它们。我不想在这个阶段获得实际的文件URL。

答:

2赞 Mark 8/3/2023 #1

下面的代码返回的结果与您为 Google 搜索提供的示例代码类似:

library(httr)

GET("https://www.bing.com/images/search?q=WWF%20CUB%20CLUB%20WWF16215003", user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36") %>%
                read_html() %>%
                html_nodes(".lnkw") %>%
                html_nodes("a") %>%
                html_attr("href")

更不用说 Bing 有一个 API,而且抓取似乎违反了他们的使用条款,所以也许不要冲击他们的服务器,否则你很可能会被阻止。