...بارگذاری

بنام خدای مهربان
سلام دوستان
این پست نحوه دریافت اطلاعات از وب رو میخام آموزش بدم
همونطور که میدونید سایتها بسته به سلیقه برنامه نویس با متدهای مختلفی نوشته میشن   خب همینطور دریافت اطلاعات از اون هم فرق میکنه
کاربرد پروکسی در برنامه های کرک و یا برنامه های تست وب ,...
برای دریافت اطلاعات از وب با سی شارپ راههای مختلفی هست مثلا کامپوننت htmlagilitypack 

و یا کلاس webClient
در این تمرین  با کلاس httpWebRequest مقداری رو از سایت میگیریم و این مقدار پروکسی هستش
خب کلاس httpwebrequest داراری متدهای فراوانی هست که تو راهنمای ماکروسافت مشروحا قرار داده شده
ابتدا یه نمونه از این کلاس ایجاد میکنیم
و یه ورودی بهش میدیم

  HttpWebRequest httpW = (HttpWebRequest)HttpWebRequest.Create(textBox1.Text);

و سپس وقتی کاربر ادرس رو وارد کرد بازخورد اونو با متد response میگیریم



 HttpWebResponse resp = (HttpWebResponse)httpW.GetResponse();

الان باید با کلاس استریم دریافتی ها رو بخونیم

            StreamReader sr = new StreamReader(resp.GetResponseStream());

 تو این خط باید متدی ایجاد میکردم که رشته هایی که دریافت کردیم رو بخونه اینکارو با استریم ریدیر کردیم
اون رشته ای رو که گرفتیم توسط استریم میخونیم و اون رشته ها الان قروقاطی هستن
برای دریافت پروکسی باید از یه نوع بنام رگولار اکسپریشن


string MyReg = "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}:[0-9]{1,4}";
Regex reg = new Regex(MyReg);


برای تفکیک اعداد از کلمات باید یه الگویی از این کلاس بسازیم که اعداد رو به شکلی که ما میخاییم جدا کنه
مثلا
[0-9]
یعنی اعداد بین 0و9
{1,3}
این یعنی رقم ما حداقل 1 و حداکثر 3 عدد باشه
خب این پروسه رو ادامه میدم در اخر نیز به همین شکل پورت رو میگریم


نهایتا برنامه رو اجرا میکنیم
این همه کدها

از مراحل ساخت برنامه فیلم تهیه کردم که میتونید در==> آپارات ببینید

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text.RegularExpressions;
using System.Data; using System.IO;
using System.Windows.Forms;
using System.Net; using System.Text;
public partial class Form1 : Form
namespace ProxyScraper { { public Form1()
private void Form1_Load(object sender, EventArgs e)
{ InitializeComponent(); }
private void Button1_Click(object sender, EventArgs e)
{ } {
HttpWebRequest httpW = (HttpWebRequest)HttpWebRequest.Create(textBox1.Text);
HttpWebResponse resp = (HttpWebResponse)httpW.GetResponse();
string MyReg = "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}:[0-9]{1,4}";
StreamReader sr = new StreamReader(resp.GetResponseStream()); string StrUrl = sr.ReadToEnd();
{
Regex reg = new Regex(MyReg); MatchCollection mat = reg.Matches(StrUrl); foreach (Match item in mat)
private void Button2_Click(object sender, EventArgs e)
listBox1.Items.Add(item); } resp.Close(); label1.Text = listBox1.Items.Count.ToString(); } {
using (StreamWriter sw = new StreamWriter(sv.FileName))
SaveFileDialog sv = new SaveFileDialog(); if (sv.ShowDialog()==DialogResult.OK) { { foreach (object item in listBox1.Items) {
}
sw.WriteLine(item); } } } }
}






تعداد نظرات 0

ارسال نظر

لطفا از ارسال نظرات حاوی تبلیغات و توهین خودداری فرمائید

ایمیل های شما در هر صورت محفوظ هست مگر در متن کامنت درج شود

Dear users, please refrain from posting comments about ads and sales links, and such
otherwise comments will be deleted Also your emails will be hidden