0

我正在使用 Selenium 和 Python 构建一个网络爬虫,但遇到了一些障碍。爬虫通过使用查找所有链接来工作

ListlinkerHref = self.browser.find_elements_by_xpath("//*[@href]")

并遍历 ListlinkerHref。这对于带有 href 属性的经典链接非常有用。然而,快速浏览一下 www.primitiveworldproductions.com 主页的源代码,在第 110 行和第 135 行之间(大约)显示了一堆使用 Javascript 构建的链接,而没有看到 href 属性。

我对 Javascript 几乎一无所知,我查看了 Selenium 文档,但我找不到检测这些链接的方法。是否有一种强大的、包罗万象的方法来查找源代码中的所有链接,包括那些由 Javascript 构造的没有 href 属性的链接?请注意,我的爬虫无法通过单击链接来工作(它只是将它们添加到稍后打开的列表中),并且爬虫需要能够爬取任何站点,而不考虑具体细节。这可能吗?

编辑:

以下是相关源代码部分的前几行。

var n111 = menuMgr.createMenu("ref111");

n111.addItem("126", "Staff Bios", "/staff.aspx", ["systems/nlsmenu/img/submenuovr.gif","systems/nlsmenu/img/submenuovr.gif"], true, null, "ref126");

var n112 = menuMgr.createMenu("ref112");

n112.addItem("146", "Promotional Video", "/PromotionalVideo.aspx", ["systems/nlsmenu/img/submenuovr.gif","systems/nlsmenu/img/submenuovr.gif"], true, null, "ref146");

n112.addItem("120", "Video for Social Media", "/vsm.aspx", ["systems/nlsmenu/img/submenuovr.gif","systems/nlsmenu/img/submenuovr.gif"], true, null, "ref120");

n112.addItem("147", "Live Webcasting and Event Video", "/Webcasting.aspx", ["systems/nlsmenu/img/submenuovr.gif","systems/nlsmenu/img/submenuovr.gif"], true, null, "ref147");
4

1 回答 1

0

如果您在菜单中的任何项目上单击鼠标右键,然后选择“检查元素”,您将看到使用 JavaScript 生成的 HTML 代码。您会看到primitiveworldproductions.com 上的菜单项没有href 属性,并且链接的目标在onclick 事件上加载。恐怕没有简单的方法可以从此菜单中提取链接。

于 2013-06-23T15:14:48.257 回答