임 C와 htmlagilitypack 새로운 그리고 난 2079787163입니다 signup_form_id의 가치를 얻으려고 노력했습니다
<form name="setupform" id="setupform" method="post" action="/signup/" target="_top">
<input type="hidden" name="form_type" value="blog" />
<input type="hidden" name="stage" value="" />
<input type="hidden" name="loc" value="signup" />
<input type='hidden' name='signup_form_id' value='2079787163' /><input type="hidden" id="_signup_form" name="_signup_form" value="9783b65654" />
Heres 내 코딩
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.Load("https://signup.wordpress.com/signup/");
var value = doc.DocumentNode.SelectSingleNode("//form[@name='signup_form_id'");
Console.WriteLine(value.InnerText);
나는 뭔가 내 xpath 표현과 정말 잘못이 사실에 대해 우둔 알고. 어떤 영혼이 어떤 제안을 할 수 있습니까? 고마워!
우선 '로드'메소드가 파일 경로 만 URI를 지원하지 않기 때문에 코드가 doc.Load
행에서 실패합니다. HTML을 다운로드하려면 HtmlWeb
의 Load
메서드를 사용해야합니다.
둘째, XPath의 결함 :
]
signup_form_id
설정된 양식이 없습니다. 결론적으로 다음과 같이 코드를 수정해야합니다.
var url = "http://signup.wordpress.com/signup/";
var htmlWeb = new HtmlWeb();
var doc = htmlWeb.Load(url);
var value = doc.DocumentNode.SelectSingleNode("//form[@id='setupform']");
Console.WriteLine(value.OuterHtml);
업데이트 : 질문을 명확히 해 주셔서 감사합니다. 문제에 대해 처음에는 잘못 이해했습니다.
form
아닌 input
태그를 찾는 것처럼 보입니다. 따라서이 요구 사항에 맞게 XPath를 수정해야합니다.
필요한 데이터를 읽는 코드는 다음과 같습니다.
var url = "http://signup.wordpress.com/signup/";
var htmlWeb = new HtmlWeb();
var doc = htmlWeb.Load(url);
var signupFormIdElement = doc.DocumentNode
.SelectSingleNode("//input[@name='signup_form_id']");
var signupFormId = signupFormIdElement.GetAttributeValue("value", "");
Console.WriteLine(signupFormId);