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

Python 屏幕抓取图像(即Firefox页面信息/谷歌图像),python,image,firefox,screen-scraping,google-shopping-api,Python,Image,Firefox,Screen Scraping,Google Shopping Api,最好使用给定URL的python(当前使用urllib和BeautifulSoup) 例如,我试图在本页上刮取主照片: 在Firefox中,工具>页面信息>媒体下列出所有可见图像,包括指向我想要抓取的图像的链接() 两个相互关联的问题: 如果我查看源,则从 在html文档中找不到Firefox工具。。。我有什么办法可以取回这个吗 没有通过Firefox页面信息的路径?也许通过这两种方式 Python和/或Javascript/JQuery 我试图用“橙色”来获取产品的照片,注意到默认情况下页面总

最好使用给定URL的python(当前使用urllib和BeautifulSoup)

例如,我试图在本页上刮取主照片:

在Firefox中,工具>页面信息>媒体下列出所有可见图像,包括指向我想要抓取的图像的链接()

两个相互关联的问题:

  • 如果我查看源,则从 在html文档中找不到Firefox工具。。。我有什么办法可以取回这个吗 没有通过Firefox页面信息的路径?也许通过这两种方式 Python和/或Javascript/JQuery
  • 我试图用“橙色”来获取产品的照片,注意到默认情况下页面总是加载黑色
  • 一个有效的例子可能是Google“Shopping”,如果您键入此产品的名称并选择颜色,则图像将以正确的颜色(来自完全相同的页面)显示在搜索结果中

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

    选择正确的颜色似乎更复杂,在这种情况下,我现在只接受黑色的主要产品图像


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

    这可能有点复杂,但在这种特殊情况下,大多数有效的解决方案基本相同

    首先,让我告诉您为什么使用Beautiful Soup或xlml不起作用。您需要检索一些只有在单击橙色袋子缩略图后才可用的信息,对吗?。这是使用Javascript加载的,因此美丽的汤和朋友将无法使用橙色袋子图像(因为他们不解析Javascript,也不解析解析树中缺少的元素)。 所以这是一个死胡同

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

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

    让我来感受一下它的样子:

    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
    
    在那里,你拥有完成任务所需的大部分东西

    顺便说一句,让我提醒你,通常需要请求许可才能检索这种东西


    希望这能有所帮助。

    这可能有点复杂,但在这种特殊情况下,大多数解决方案都差不多

    首先,让我告诉您为什么使用Beautiful Soup或xlml不起作用。您需要检索一些只有在单击橙色袋子缩略图后才可用的信息,对吗?。这是使用Javascript加载的,因此美丽的汤和朋友将无法使用橙色袋子图像(因为他们不解析Javascript,也不解析解析树中缺少的元素)。 所以这是一个死胡同

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

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

    让我来感受一下它的样子:

    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
    
    在那里,你拥有完成任务所需的大部分东西

    顺便说一句,让我提醒你,通常需要请求许可才能检索这种东西


    希望有帮助。

    忘了提到您想要元素的背景属性。您链接到的页面未使用img标签。谢谢!我会尝试一下并发布任何更新。嗯,即使你链接回网站,也需要许可吗?我只打算把它们当作缩略图用……无论如何,我会查一查的。此外,我希望我可以删除在谷歌搜索中单击橙色缩略图的步骤。不确定他们是如何从同一页自动检索该图像的。也许这是最高机密,因为我还没有看到任何其他例子:)没问题。恐怕你几乎总是需要许可。问问他们,如果他们似乎对此不太热心,你可以提供链接或类似的服务(或付费)。至于谷歌搜索,请记住,网页使用技术允许网络爬虫访问其内容。让我纠正自己:他们正在使用即时通讯