Python 使用lxml.html删除嵌入元素,或者如何欺骗网站,使其认为您已经安装了Flash

Python 使用lxml.html删除嵌入元素,或者如何欺骗网站,使其认为您已经安装了Flash,python,screen-scraping,web-scraping,lxml,Python,Screen Scraping,Web Scraping,Lxml,我正试图抓取一个网站,我需要获取一个嵌入元素,但由于我使用的是Python和lxml.html,网站准确地得出结论,我没有安装Flash,而不是向我显示嵌入元素,它向我显示了以下内容: <div> <font> <u> <b> <a href="http://get.adobe.com/flashplayer/"> ATTEN

我正试图抓取一个网站,我需要获取一个嵌入元素,但由于我使用的是Python和lxml.html,网站准确地得出结论,我没有安装Flash,而不是向我显示嵌入元素,它向我显示了以下内容:

<div>
    <font>
        <u>
            <b>
                <a href="http://get.adobe.com/flashplayer/">
                ATTENTION:<br>This video will not play. You currently do not have Adobe Flash installed on this computer. Please click here to download it (it's free!)
                </a>
            </b>
        </u>
    </font>
</div>

显然这是一个问题,所以我想知道是否有可能为了检索正确的元素而欺骗浏览器,使其认为您已经安装了Flash(即使您没有安装)


我希望有人能帮忙

我相信下面的博文很好地回答了你的问题。作者也有同样的需求,即使用Python刮取Flash内容。同样的问题也出现了。他意识到他只需要实例化一个浏览器(甚至只是一个内存中的浏览器,甚至没有显示在屏幕上),然后刮取它的输出。我认为这可能是一个成功的方法,你需要什么,他使它容易理解


要获取JavaScript生成的内容,您也可以尝试Selenium。

加载时,该部分是否被一些客户端JavaScript替换为实际的
?s1.书写(“玩家”);其中s1是:var s1=新的SWFObject(“/player.swf”、“mediaplayer”、“560”、“440”、“8”);s1.addParam(“allowfullscreen”、“true”);s1.添加变量(“宽度”、“560”);s1.添加变量(“高度”、“440”);s1.添加变量(“自动启动”、“真”);s1.添加变量(“全屏”、“真”);s1.addParam(“wmode”、“不透明”);你不需要对你自己的问题发表评论,你可以代替它。这似乎启动了一个浏览器,它可以在后台运行吗?@Atheuz:你可以使用它,它似乎只是Linux系统的一个选项。至少从我所看到的情况来看。@Atheuz:你可以试试无头驱动程序,比如HtmlUnitDriver、WebKitDriver、GhostDriver(还没有准备好)有没有办法在Windows上安装pywebkitgtk?因为除了不能在Python 2.7上运行的版本外,我没有找到任何其他版本。我将接受您的答案,因为它让我找到了部分答案,尽管仍然不起作用。特别是使用PyQt4 QtWebKit可以在Windows上运行并在内存中呈现网页,但我需要解决一些无关的问题。好的,谢谢!谢谢你的回复,我希望你能得到你需要的整个系统。如果你这样做了,就把它贴出来。。。