使用Python通过javascript调用解析网站

使用Python通过javascript调用解析网站,python,parsing,Python,Parsing,因为我在普通的维基媒体中找不到API函数来获取图像的AliSense,所以我只能自己获取网页并解析它 对于每张图片,wikimedia中都有一个不错的弹出窗口,列出了我需要的“属性”字段。 例如,页面右侧有一个链接,上面写着“在web上使用此文件”。单击它时,我可以看到我需要的“属性”字段 使用Python,我如何获取网页并启动javascript调用来打开弹出窗口,以便检索“属性”字段中的文本 谢谢 meir假设您可以阅读Javascript,您可以查看以下Javascript文件: 您可以查

因为我在普通的维基媒体中找不到API函数来获取图像的AliSense,所以我只能自己获取网页并解析它

对于每张图片,wikimedia中都有一个不错的弹出窗口,列出了我需要的“属性”字段。 例如,页面右侧有一个链接,上面写着“在web上使用此文件”。单击它时,我可以看到我需要的“属性”字段

使用Python,我如何获取网页并启动javascript调用来打开弹出窗口,以便检索“属性”字段中的文本

谢谢


meir

假设您可以阅读Javascript,您可以查看以下Javascript文件:


您可以查看Javascript如何获取其信息(查看
get\u author\u attribute
get\u license
。您可以使用
BeautifulSoup
将其移植到Python以解析HTML。

假设您可以阅读Javascript,您可以查看此Javascript文件:


你可以看到Javascript是如何获取信息的(查看
get\u author\u attribute
get\u license
。你可以使用
beautifulsou
将其移植到Python来解析HTML。

我想看看如何使用其他工具来完成这项工作。使用和,可以这样做:

import selenium

sel=selenium.selenium("localhost",4444,"*firefox", "file://")   
sel.start()
sel.open('http://commons.wikimedia.org/wiki/File%3aBrad_Pitt_Cannes_2011.jpg')

sel.click('//a[contains(@title,"Use this file on the web")]')
print(sel.get_value('//input[@id="stockphoto_attribution"]'))
sel.stop()
屈服

Georges Biard [CC-BY-SA-3.0 (www.creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons

我很想看看如何使用其他工具来完成这项工作。使用和,可以这样做:

import selenium

sel=selenium.selenium("localhost",4444,"*firefox", "file://")   
sel.start()
sel.open('http://commons.wikimedia.org/wiki/File%3aBrad_Pitt_Cannes_2011.jpg')

sel.click('//a[contains(@title,"Use this file on the web")]')
print(sel.get_value('//input[@id="stockphoto_attribution"]'))
sel.stop()
屈服

Georges Biard [CC-BY-SA-3.0 (www.creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons

使用unutbu的答案,我将其转换为使用Selenium(而不是旧的Selenium RC)

输出:

on the web
on a wiki

使用unutbu的答案,我将其转换为使用Selenium(而不是旧的Selenium RC)

输出:

on the web
on a wiki

可能重复。可能重复.nice。我添加了一个显示Selenium WebDriver而不是Selenium RC的新答案。WebDriver版本不需要Selenium server.nice。我添加了一个显示Selenium WebDriver而不是Selenium RC的新答案。WebDriver版本不需要Selenium server。不过,谢谢,我需要单击“网上”时在弹出窗口内打开的文本谢谢,但是,我需要单击“网上”时在弹出窗口内打开的文本