【发布时间】:2021-07-07 22:43:08
【问题描述】:
我正在尝试在 Windows 窗体中进行 Google 图片搜索,但我的代码返回 null,即使我手动搜索 xPath 也会将我带到图片。我对 API 和 NuGet 包还很陌生,所以对我来说轻松点,哈哈!错误具体是“对象引用未设置为对象的实例。但是当我搜索 xPath 时,它会显示 48 个结果。这是我的代码
private void searchButton_Click(object sender, EventArgs e)
{
string ImageQuery = titleTextBox.Text;
var htmlDocument = new HtmlWeb().Load("https://www.google.com/search?q=+" + ImageQuery + "&tbm=isch");
var imageNode = htmlDocument.DocumentNode.SelectSingleNode("//div[@class='bRMDJf islir']/img");
string imagePath = imageNode.Attributes["src"].Value;
var imageStream = HttpWebRequest.Create(imagePath).GetResponse().GetResponseStream();
this.optionOnePicture.Image = Image.FromStream(imageStream);
}
【问题讨论】:
-
刚刚检查了谷歌,从我可以看到的 src 包含 base64 格式的图像本身。您需要做的就是将其转换为图像
-
你所做的不是查询 API;您正在抓取 HTML 内容,不管这是否合法,这会让您非常头疼,因为 1)他们可能很难做到,2)任何时候他们改变前端呈现您的功能的方式都会中断。
-
应该是2个问题:1.如何从google获取图片2.将图片显示到pictureBox中?
-
@TheBluePrint,有更新吗?请检查我的答案是否适合您。
标签: c# .net visual-studio