gpt4 book ai didi

python - 屏幕抓取图像(即 Firefox 页面信息/谷歌图像)

转载 作者:太空宇宙 更新时间:2023-11-04 06:43:14 25 4
gpt4 key购买 nike

最好使用 python(目前使用 urllib 和 BeautifulSoup)给定一个 URL。

例如,我正在尝试抓取此页面上的主要照片:http://www.marcjacobs.com/marc-jacobs/womens/bags-and-accessories/c3122001/the-single#?p=1&s=12

在 Firefox 中的“工具”>“页面信息”>“媒体”下列出了所有可见图像,包括指向我要抓取的图像的链接 (http://imagesec.mj.ctscdn.com/image/336/504/6ace6aac-c049-4d7e-9465-c19b5cd8e4ac.jpg)

两个相互关联的问题:

  1. 如果我查看源代码,则从在 html 文档中找不到 Firefox 工具...有什么方法可以检索它不通过 Firefox 页面信息的路径?也许通过Python 和/或 Javascript/JQuery?
  2. 我正在尝试获取“橙色”的产品照片,并注意到该页面始终默认加载黑色

Google 的“购物”可能是一个可行的示例,如果您键入该产品的名称并选择颜色,该图片将以正确的颜色(来自完全相同的页面)显示在搜索结果中。

基本上,我希望能够从大多数购物网站上抓取颜色和样式/变化的特定图像。

选择正确的颜色似乎更复杂,在这种情况下,我暂时只选择黑色的主要产品图片..

到目前为止,我已尝试根据 img 高度标签选择图像,也尝试在没有高度/宽度标签时读取尺寸...但我想到必须有更好的方法。

最佳答案

这可能有点复杂,但大多数适用于这种特定情况的解决方案都几乎相同。

首先,让我告诉您为什么使用 Beautiful Soup 或 xlml 不起作用。您需要检索一些只有在您点击橙色包缩略图后才可用的信息,对吗?这是使用 Javascript 加载的,因此 Beautiful Soup 和 friend 无法使用橙色包图像(因为他们不解析 Javascript 也不解析解析树中不存在的元素)。所以这是一个死亡结局。

但是,还有其他屏幕抓取工具,如 Selenium或 PhantomJS。我已经测试了两者并且工作得很好。他们基本上集成了一个浏览器,因此他们显然能够管理 javascript。我不知道你是否需要从你的服务器自动抓取这个,或者你想随意开始抓取过程。使用 Selenium(在您告诉它要打开哪个页面、要单击哪个元素等之后),您将看到浏览器自行完成所有这些工作。还有其他可用选项,例如使用 headless 浏览器。在我看来,它非常强大,但要使其正常工作可能会变得非常复杂。

一个更简单的解决方案是使用 PhantomJs。它与 Selenium 类似,尽管正如其名称所示,您可以通过 Javascript 给出指令(这可能会更舒服一些,因为您已经在处理 Web 元素)。我建议你使用 CasperJS : 它简化了定义完整导航场景的过程,并为执行常见任务提供了有用的高级函数、方法和语法糖...

让我感受一下它的样子:

casperFunction = function(){
var casper = require('casper').create({
verbose: true
});

casper.start('yourwebpage'); // loading the webpage

casper.then(function(){ // after loading...
casper.evaluate(function(){ // get me some element's value
document.getElementById('yourelement').value
});

});

casper.then(function(){ // after that, click on this other element
this.click('#id_of_other_element');
})

casper.wait(7000); // wait for some processing... this can be quite
// useful if you need to wait a few seconds in
// order to retrieve your orange bag later

casper.run(); // actually runs the whole thing

您已经拥有完成任务所需的大部分东西。

顺便提醒一下,通常需要请求许可才能检索这种东西。

希望对您有所帮助。

关于python - 屏幕抓取图像(即 Firefox 页面信息/谷歌图像),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10867253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com