سلام من میخوام از سایت سهام یاب مثلا قیمت اخرین معامله رو بگیرم و در لیبل چاپ بشه با زدن دکمه get کدی که من نوشتم اینه میشه بگین چیکار کنم Not found! نشه لطفا
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp15
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = "وغدیر";
button1.Text = "Get";
}
private void button1_Click(object sender, EventArgs e)
{
button1.Text = "Wait...";
button1.Enabled = false;
Application.DoEvents();
var url = "https://www.sahamyab.com/hashtag/" + textBox1.Text;
var page = GetPage(url);
var classId = "ml-1 align-self-center";
var regex = new Regex("<div _ngcontent-ygd-c30 class=\"" + classId + "\">\\s*(?<price>[^\\<\\s]*)\\s*</div>", RegexOptions.IgnoreCase);
var match = regex.Match(page);
label1.Text = (match.Success) ? match.Groups["price"].Value : "Not found!";
button1.Text = "Get";
button1.Enabled = true;
}
private static string GetPage(string url)
{
try
{
var request = (HttpWebRequest)WebRequest.Create(url);
request.CookieContainer = new CookieContainer();
request.Proxy = WebRequest.DefaultWebProxy;
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36";
request.ProtocolVersion = HttpVersion.Version10;
request.Accept = "*/*";
request.ContentType = "text/html";
request.ContentLength = 0;
using (var response = (HttpWebResponse)request.GetResponse())
{
var stream = response.GetResponseStream();
if (stream == null)
{
return string.Empty;
}
using (var reader = new StreamReader(stream))
{
return reader.ReadToEnd();
}
}
}
catch
{
return "";
}
}
}
}
از این قسمت
یعنی هیچ جوابی نداره؟
هیییییییییی
سلام
دوست من یکم صبور باشین حتما استاد وقت نکردن ببینن
و در رابطه با سوالتون باید دانش شبکه داشته باشین من هم ندارم که بتونم کمکتون کنم ولی فکر میکنم این سایت میتونه مفید باشه
باسلام خدمت دوستان عزیز
برای دانلود محتوای صفحات HTML میتونید از کد زیر استفاده کنید:
using (WebClient client = new WebClient()) // WebClient class inherits IDisposable
{
client.DownloadFile("https://www.sahamyab.com/hashtag/وغدیر", @"C:\localfile.html");
// Or you can get the file content without saving it
string htmlCode = client.DownloadString("https://www.sahamyab.com/hashtag/وغدیر");
}
متد DownloadFile جهت دانلود اطلاعات صفحه و انتقال اطلاعات به داخل فایل و متد DownloadString جهت دانلود محتوای صفحه html به یک رشته در داخل یک متغیر است.
یعنی این کد کار منو راه میندازه استاد؟
استاد اون @"C:\localfile.html مربوط به چی میشه
استاد این کد رو به من داد اما قیمت پایانی رو من پیدا نکردم من میخوام قیمت پایانی رو بگیرم از سایت توسط سی شارپ
این کد برای گرفتن کلیه تگ های صفحه است برای گرفتن اطلاعات از صفحه (مثلا قیمت پایانی) باید درباره Regex ها یا همون Regular Expression ها مطالعه فرمایید تا بتونید طبق الگوی موردنظر خودتون اطلاعات رو از صفحه واکشی کنید.
استاد من regex رو ک نوشتم تو کد اولی ک فرستادم براتون اشتباه هست؟
اخه من از بعضیا پرسیدم میگن درسته اما چرا کار نمیکنه اگ میشه فقط ی چک کنید اگر درست نیس قسمت regex بهم بگین یا اگر شد اصلاح کنید برام