【问题标题】:Pull specific IDs from HTML code C#从 HTML 代码 C# 中提取特定 ID
【发布时间】:2012-11-05 10:02:28
【问题描述】:

我正在制作一个程序,您可以登录 facebook,去某人的墙上并在上面发布。我有所有这些工作,如果我手动输入我去的 ID 并在 HTML 中找到你写状态的文本视图框和你点击发布的发布按钮。我的问题是此文本框的 ID 和发布按钮在您每次访问页面或页面刷新时都会更改。所以你不能只在 ID 中编码来获得它HtmlElement element = browser.Document.GetElementById("some-ID"); 我需要以某种方式解析 HTML 代码并在每次页面刷新时为 textview 和按钮提取特定 ID。我研究了 html 敏捷包,但它并没有真正帮助我。有人可以帮忙吗?

编辑 这是我试图从您发布的文本区域中获取 ID 的代码行。你可以看到它只是一个随机的字母乱码,最后是一些数字。每次加载页面时它都会更改。而且我还没有看过 facebook api 会有帮助吗?

<DIV class="innerWrap"><TEXTAREA aria-expanded="false" onkeydown='Bootloader.loadComponents(["control-textarea"], function() { TextAreaControl.getInstance(this) }.bind(this)); ' id="ujkzdk454" class="DOMControl_placeholder uiTextareaAutogrow input mentionsTextarea textInput" title="Write something..." role="textbox" aria-owns="typeahead_list_ujkzdk453" name="xhpc_message" autocomplete="off" aria-autocomplete="list" placeholder="Write something..." aria-label="Write something...">Write something...</TEXTAREA></DIV></DIV></DIV><INPUT 

【问题讨论】:

  • 请发布您要查找的元素的代码。
  • 为什么要使用 HTML 解析来做到这一点?使用 Facebook API 会不会更好?
  • 是的,我同意...这是您应该使用 Facebook API 做的事情。
  • 我把文本区域的 HTML 贴出来了。而且我从来没有对 Facebook API 做过任何事情,所以我不确定我是否真的想参与其中。只要我进入我的文件并在表单上的文本框中手动输入按钮 ID 和 textview ID,我就可以让整个程序正常工作。我只是想让程序自己做。
  • 另外,如果我不得不从另一个网站提取 ID,因为在每次页面加载时它们都会发生类似的问题,我想知道该怎么做。

标签: c# html-parsing


【解决方案1】:

我同意您可能应该使用 Facebook API,但无论如何,用 jquery 做类似的事情怎么样?

var textarea = $('textarea', '.innerWrap');
var button = $('.innerWrap').next('input');

如果你还想要 ids

var textareaId = textarea.attr('id')
var buttonId = button.attr('id') 

【讨论】:

  • 我从来没有使用过 javascript,因为我的一位教授告诉我这是魔鬼哈哈,这就是 jquery 的基础,对吧?如果有多个带有类 innerWrap 的文本区域,这不会从所有这些区域返回多个 id 吗?
  • 我很惊讶您说您从未使用过 JavaScript,因为您的原始帖子看起来像是在使用它。是的,jQuery 是基于 JavaScript 构建的。我不确定它会返回多个 ID,但会产生一些奇怪的东西。在这种情况下,如何为您的按钮添加一个单击处理程序:$('input', '.innerWrap').click(function(){ var buttonId = $(this).attr('id'); var textAreaId = $(this).prev('textarea').attr('id'); }); 那应该只是在与单击的按钮相同的 innerWrap 中获取按钮和 textarea 的 ID
猜你喜欢
  • 1970-01-01
  • 2016-06-05
  • 2016-08-28
  • 2021-05-25
  • 1970-01-01
  • 2021-07-08
  • 1970-01-01
  • 2020-02-16
  • 2014-12-23
相关资源
最近更新 更多