【问题标题】:Getting src link of XKCD image?获取 XKCD 图像的 src 链接?
【发布时间】:2016-04-20 04:52:05
【问题描述】:

我正在尝试从 xkcd.com 网站获取主图像的 src(URL) 链接。我正在使用以下代码,但它返回类似session="2f69dd2e-b377-4d1f-9779-16dad1965b81", element="{ca4e825a-88d4-48d3-a564-783f9f976c6b}"

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

browser = webdriver.Firefox()

browser.get('http://xkcd.com')
assert 'xkcd' in browser.title

idlink= browser.find_element_by_id("comic")

#link = idlink.get_attribute("src") ## print link prints null

print idlink

使用 xpath 方法也返回和上面一样。

【问题讨论】:

  • 我赞成你的问题,给你足够的代表来赞成这个人的答案。

标签: python selenium selenium-webdriver


【解决方案1】:

browser.find_element_by_id 返回 web 元素,这就是您打印的内容。 此外,您想要的文本位于idlink 的子元素中。试试

idlink = browser.find_element_by_css_selector("#comic > img")
print idlink.get_attribute("src")

idlink 现在是带有img 标签的网络元素,其父元素的ID 为comic。 URL 位于 src 中,因此我们需要该属性。

【讨论】:

  • 另外,“comic”是一个包含 的
    元素:<div id="comic"> <img src="//imgs.xkcd.com/comics/tools.png" title="I make tools for managing job-hunting sites for people who make tools for managing job-hunting sites for people who make tools for ..." alt="Tools"> </div>
  • 我不确定 selenium 是如何工作的,但我怀疑这会很重要。
  • 不知道,但我认为 OP 正在尝试获取图像的 URL?他们不需要先获取 标签吗?
  • @MadPhysicist 是的,我现在看到了
  • 是的,我实际上需要图片的 URL。
【解决方案2】:

建立答案here

你需要:

  1. 选择 img 标签(您当前正在选择 div)
  2. 获取img标签的source属性的内容

    img_tag = browser.find_element_by_xpath("//div[@id='comic']/img")
    print img_tag.get_attribute("src")
    

上面应该打印图片的URL

更多使用 selenium 的 python 绑定定位元素的技术可用here

有关将 XPath 与 Selenium 结合使用的更多信息,请参阅 this tutorial

【讨论】:

  • 感谢您的回答也有效。它应该是 get_attribute("src") 。
  • 感谢您的支持和编辑。 :) 对我来说,XPath 一直是使用 Selenium 时要走的路……额外的精度为我的培根节省了很多时间。
猜你喜欢
相关资源
最近更新 更多
热门标签