从<表单中提取数据

时间:2019-11-13 11:11:35

标签: c# html-agility-pack

我在这里要做的是从html页面中提取[...]。这将是动态的,而不是硬编码的页面,它可以是包含以下内容的任何网站:

我使用htmlagilitypack做得很好,阅读后我认为这是最好的方法。

代码:

capturer = new CameraVideoCapturer()

我遇到麻烦的部分是从 form_html 引出所有html字段,我需要特定的数据,例如输入字段的排序方式如下:

public void ExtractFormFields(string form_html) { // here we will extract the <form> fields input / select / radio / button // an example of an extracted and sorted for is ... // https://www.wraithseo.com/register.php // id|txtUsername|0|0 // id|txtPassword|0|0 // id|txtPassword2|0|0 // id|txtEmail|0|0 // id|txtCountry|0|SELECT // name|submitRegistration|0|BUTTON_CLICK // extracted fields will be added to a multiline textbox ... } private void BtnAnalyzeForm_Click(object sender, EventArgs e) { // extract all data between <form[...]</form> ... // load the url ... var htmlWeb = new HtmlWeb(); var doc = htmlWeb.Load(txtBoxNavigateToUrl.Text); // get the <form...</form> from tyhe html page ... var form = doc.DocumentNode.SelectSingleNode("//form"); // form stored to a variable ... var form_data = form.OuterHtml; // test ... Helpers.ReturnMessage(form_data); // send the html to the ExtractFormFields method for extraction and sorting ... ExtractFormFields(form_data); }

我需要从上面的测试字段中提取此文件(以这种格式):

<input type="text" name="textfield" value="" />

如果是:

name|textfield

那么它将是:

<input type="text" id="textfield" value="" />

有没有一种方法可以使用htmlagilitypack或其他库轻松实现?我可以使用regex来做到这一点,例如:

id|textfield

if (inputHtml.Contains("id=")) { Match text_m = Regex.Match(inputHtml, @"id=""(.*?)""", RegexOptions.Singleline); if (text_m.Success) { macroCode = "id|" + text_m.Groups[1].Value); } } 相同,但是是否有更好的方法呢?任何帮助表示赞赏。

0 个答案:

没有答案