using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
//< add using >
using System.IO; //*Stream, Streamreader
using System.Net; //*NetRequest
using HtmlAgilityPack; //*Html Website
//</ add using >
namespace WebRobot_ComputerFutures
{
public partial class MainWindow : Window
{
#region Form
//--------------------<
region: Form >---------------------
public MainWindow()
{
InitializeComponent();
}
//--------------------</
region: Form >---------------------
#endregion /Form
#region Buttons
//--------------------<
region: Buttons >---------------------
private void Button_Start_Click(object sender, RoutedEventArgs e)
{
//--------< Button_Start_Click()
>--------
string sURL = Textbox_URL.Text;
var baseUrl = new Uri(sURL);
HtmlDocument doc=
fx_read_Page(sURL );
//< nodes >
HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//li[@class=\"job-result-item\"]"); //*find subnode with //
//</ nodes >
//------< @Loop: Detail Nodes
>------
foreach (HtmlNode node in nodes )
{
//----< In Detail-Node >----
HtmlNode nodeTitle =
node.SelectSingleNode(".//div[@class=\"job-title\"]"); //*find subnode with .//
if (nodeTitle !=null)
{
//--< get a_href >--
HtmlNode node_to_Detail =
nodeTitle.SelectSingleNode("a");
string sTitle = node_to_Detail.InnerText;
string sURL_Detail_relative =
node_to_Detail.GetAttributeValue("href", "");
string sURL_Detail_absolute = new Uri(baseUrl,
sURL_Detail_relative).AbsoluteUri ;
//< print >
fx_Log(sTitle);
//</ print >
//--</ get a_href >--
}
//----</ In Detail-Node >----
}
//------</ @Loop: Detail Nodes
>------
//--------</ Button_Start_Click()
>--------
}
//--------------------</
region: Buttons >---------------------
#endregion /Buttons
#region Methods
//--------------------<
region: Methods >---------------------
private HtmlAgilityPack.HtmlDocument
fx_read_Page(string sURL)
{
//------------< fx_read_Page() >------------
//* get the HTML Document of a
website-URL
//-< init >-
//< WebRequest and Response >
WebRequest objRequest =
WebRequest.Create(sURL);
HttpWebResponse objResponse =
(HttpWebResponse)objRequest.GetResponse();
//</ WebRequest and Response >
//< Stream and Reader >
Stream objDataStream =
objResponse.GetResponseStream();
StreamReader TextReader = new StreamReader(objDataStream);
//</ Stream and Reader >
//-</ init >-
//< download >
//* Read Website to local String
string sHTML = TextReader.ReadToEnd();
//</ download >
//< get HTMLdocument >
//*create and load to local HtmlDocument
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml (sHTML);
//</ get HTMLdocument >
//< output >
return doc;
//</ output >
//------------</ fx_read_Page()
>------------
}
//--------------------</
region: Methods >---------------------
#endregion /Methods
#region Sys
//--------------------<
region: Sys >---------------------
private void fx_Log (string sLog)
{
//------------< fx_Log()
>------------
//* log Text to Textbox
string sText = Textbox_Log.Text;
sText = DateTime.Now + " " + sLog + Environment.NewLine +
sText ;
if (sText.Length > 50000) { sText =
sText.Substring(50000); }
Textbox_Log.Text = sText;
Textbox_Log.UpdateLayout();
//------------</
fx_Log() >------------
}
//--------------------</
region: Sys >---------------------
#endregion /Sys
}
}
|