当前位置: 首页 > 面试题库 >

如何在网页中获取特定框架并检索其内容

吕亮
2023-03-14
问题内容

我想访问以下网址的翻译结果

http://translate.google.com/translate?hl=zh-
CN&sl=en&tl=ar&u=http%3A%2F%2Fwww.saltycrane.com%2Fblog%2F2008%2F10%2Fhow-
escape-percent-encode-url-python%
2楼

翻译将显示在两个框架中底部的内容框架中。我有兴趣仅检索底部内容框架以获取翻译

Selenium for python允许我们通过Web自动化获取页面内容:

browser.get('http://translate.google.com/#en/ar/'+hurl)

所需的框架是iframe:

<div id="contentframe" style="top:160px"><iframe   src="/translate_p?hl=en&am... name=c frameborder="0" style="height:100%;width:100%;position:absolute;top:0px;bottom:0px;"></div></iframe>

但是如何获取底部内容框架元素以使用Web自动化检索翻译呢?

知道PyQuery还允许我们使用JQuery形式主义浏览内容

更新:

一个答案提到Selenium提供了一种您可以执行此操作的方法。

frame = browser.find_element_by_tag_name('iframe')
browser.switch_to_frame(frame)
# get page source
browser.page_source

但在以上示例中无效。它返回一个空白页。


问题答案:

您可以driver.switchTo.frame(1);在此处使用,frame()内的数字1是网页中存在的帧的索引。因为您的要求是切换到第二帧并且索引以0开头,所以您应该使用driver.switchTo.frame(1);

但是上面的代码是用Java编写的。在Python中,您可以使用以下行。

driver.switch_to_frame(1);

更新

 driver.get("http://translate.google.com/translate?hl=en&sl=en&tl=ar&u=http://www.saltycrane.com/blog/2008/10/how-escape-percent-encode-url-python/");
 driver.switchTo().frame(0);
 System.out.println(driver.findElement(By.xpath("/html/body/div/div/div[3]/h1/span/a")).getText());

输出: SaltyCrane ???????

我刚刚尝试打印iframe中存在的标题名称SaltCrane。它对我有用,除了?SaltCrane之后的符号。由于是阿拉伯语,因此无法对其进行解码。

上面的代码是用Java编写的。同样的逻辑也应该在Python中起作用。



 类似资料:
  • 问题内容: 在Linux中,如何获取URL并在shell脚本的变量中获取其内容? 问题答案: 您可以使用命令下载页面并将其读取为变量,如下所示: 我们使用的选项允许我们指定将页面内容转储到的文件的名称。我们指定将转储放入标准输出并将其收集到变量中。您可以添加安静选项以关闭wget输出。 您还可以为此使用curl命令: 我们需要使用该选项,因为我们请求的页面可能已经移动。在这种情况下,我们需要从新位

  • 我正在使用PDFBox读取pdf文档上的特定字段。实际上,我可以使用仅包含一页的pdf获取我想要的所有信息。PDF具有具有特定名称的字段,我可以获取所有字段并将其插入数据库。 我将此代码与AccroForm一起使用以访问字段 现在,我的问题是对一个pdf做同样的事情,它包含多个相同的页面,具有相同的字段名,但字段中的数据不同。我希望遍历每个页面,调用相同的方法并检索每个页面上的字段数据。 我使用下

  • 假设我有一个Jextfield数组(例如JTextfield[10])。我将它们添加到框架中。现在用户在文本字段中随机输入文本,例如用户首先输入索引为5的文本字段,然后是9,然后是2,依此类推。不一定要填充所有的文本字段。 我的问题是,如何获取文本字段的索引,并在用户输入文本时同时打印索引,这意味着如果用户在文本字段中输入索引5,我应该能够获得索引5,然后如果填充了索引9的文本字段,则打印9,依此

  • 问题内容: 在代码内部,我想下载“ http://www.google.com”并将其存储在字符串中。我知道如何在python的urllib中做到这一点。但是,如何在Node.JS + Express中做到这一点? 问题答案: 使用node.js,您可以只使用http.request方法 http://nodejs.org/docs/v0.4.7/api/all.html#http.request

  • 问题内容: 我想检测特定页面是否已在内存中映射。目的是能够在使用固定内存地址调用mmap之前执行此检查。以下代码说明了默认情况下的情况:mmap默默地重新映射原始内存页面。 我知道我可以打开并解析/ proc / self / maps来确定已分配的内存范围,并从中推断出以下内容:如果我可以使用mmap安全地请求特定的内存范围,但是我正在寻找合适的API:一个东西 ? 问题答案: msync(ad

  • 问题内容: 我正在尝试从下面的html中检索网页中的数据 我的目标是解析“#/ word / 1 /” 但输出是 我尝试了很多方法,似乎无法在目标类中获取“ a href”的内容。 我真的不想做的是获取页面的源代码,然后进行字符串搜索,这似乎很愚蠢。 反正得到那个? 问题答案: 据我所知,您可以通过搜索子元素来获取href