نقل قول: اررو در htmlagility
منتظرم ممنون میشم جواب بده کسی
نقل قول: اررو در htmlagility
چک کنید احتمالا دستور Select اون المنت رو بدرستی وارد نکردید هرچند هم که اون Element در سایت وجود داره .
http://www.codefall.io/15-jun-2014/h...g-started.html
نقل قول: اررو در htmlagility
نقل قول:
نوشته شده توسط
Moien Tajik
HtmlWeb hweb = new HtmlWeb();
var h= hweb.Load("https://www.instagram.com/hossein_mnt/");
string body = h.DocumentNode.SelectSingleNode("//*[@id='react-root']/section/main/article/header/div[1]/div/img").InnerHtml
الان این آدرس پیج اینستای من هستش copy xpath گرفتم همین شد چه مشکلی داره؟ ممنون میشم تست کنی مهندس
نقل قول: اررو در htmlagility
من براتون تست کردم .
اینستاگرام چون با React JS نوشته شده ، کدهای داخل react-root وقتی که از HttpRequest استفاده میکنید نمایش داده نمیشن و null برگردونده میشه و بخاطر همین نمیتونید از XPath و HtmlAgilityPack استفاده کنید.
روش دیگه ای پیدا کردم و یک Sample براتون ساختم که میتونید استفاده کنید ازش :
static void Main()
{
WebClient client = new WebClient();
client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
Stream data = client.OpenRead("https://www.instagram.com/hossein_mnt/");
if (data != null)
{
using (StreamReader reader = new StreamReader(data))
{
Regex regex1 = new Regex(@"(.*)\.jpg");
Regex regex2 = new Regex(@"(?<=https)(.*)(?=)");
string s = reader.ReadToEnd();
MatchCollection findImage = regex1.Matches(s);
string profileImageElement = findImage
.OfType<Match>()
.Select(m => m.Value)
.Distinct()
.FirstOrDefault();
if (profileImageElement != null)
{
MatchCollection profileImageUrl = regex2.Matches(profileImageElement);
string finalResult = profileImageUrl
.OfType<Match>()
.Select(m => m.Value)
.Distinct()
.FirstOrDefault();
Console.WriteLine("https" + finalResult);
}
Console.ReadKey();
}
}
}
نقل قول: اررو در htmlagility
مهندس عالی یه سوال دیگه بخوای اطلاعات دیگه از صفحش شامل مثلا تعداد فالورزشا رو بگیری چطوریه؟
کدوم قسمت شو تغییر بدم با تشکر
نقل قول: اررو در htmlagility
میتونید داخل متغییر s که source صفحه داخلش ذخیره میشه جستجو کنید با همون HtmlAgilityPack و یا Regex و یا از Instagram Api استفاده کنید .
نقل قول: اررو در htmlagility
نقل قول:
نوشته شده توسط
Moien Tajik
میتونید داخل متغییر s که source صفحه داخلش ذخیره میشه جستجو کنید با همون HtmlAgilityPack و یا Regex و یا از Instagram Api استفاده کنید .
من به این صورت نوشتم ولی مقدار null بر میگردونه ! حتی اون عدد 150 هم نمیگیره
کد html صفحه: <span class="_bkw5z" title="150">150</span>
Regex rg3 = new Regex(@"(?:\<span\ class\=\'_bkw5z\'\>150\<\/span\>)");
نقل قول: اررو در htmlagility
مقدار s رو داخل Notepad کپی کنید ، ببینید کجا follower و following نشون داده شده ، متناسب با اون regex باید بزنید و یا از HtmlAgilityPack استفاده کنید .
"followed_by\": {\"count\": 151}, \"followed_by_viewer\": false, \"follows\": {\"count\": 512}