C # HTML로 Instagram 프로파일 다운로드하기

c# download html html-agility-pack instagram

문제

나는 Public Instagram 프로파일을 추종자 (follower) 및 바이오 (bio)와 같은 통계를 가져 오기 위해 다운로드하려고 시도해 왔습니다. 나는 ac # 콘솔 어플리케이션에서 이것을 수행했고 HTML Agility Pack을 사용하여 HTML을 다운로드했다.

암호:

string url = @"https://www.instagram.com/" + Console.ReadLine() + @"/?hl=en";
Console.WriteLine();

HtmlWeb web = new HtmlWeb();
HtmlDocument document = web.Load(url);
document.Save(path1);

나가 얻는 모두는 원본 및 빈 화면의 낱단이더라도 나가 그것을 저장할 때 :

여기에 이미지 설명을 입력하십시오.

일단 모든 스크립트가 실행되고 내용을 형성하면 html을 저장하는 방법에 대해 궁금합니다.

수락 된 답변

대답

HTML을 다운로드하는 방법에 대한 제안에 감사드립니다! 나는 결국 일부 인스 타 그램 정보를 반환 할 수 있었다. 다음은 코드입니다.

//(This was done using HTML Agility Pack)

string url = @"https://www.instagram.com/" + Console.ReadLine() + @"/?hl=en";

HtmlWeb web = new HtmlWeb();
HtmlDocument document = web.Load(url);

var metas = document.DocumentNode.Descendants("meta");
var followers = metas.FirstOrDefault(_ => _.HasProperty("name", "description"));

if (followers == null) { Console.WriteLine("Sorry, Can't Find Profile :("); return; }

var content = followers.Attributes["content"].Value.StopAt('-');

Console.WriteLine(content);

그리고 HasProperty () & StopAt ()

public static bool HasProperty(this HtmlNode node, string property, params string[] valueArray)
{
    var propertyValue = node.GetAttributeValue(property, "");
    var propertyValues = propertyValue.Split(' ');
    return valueArray.All(c => propertyValues.Contains(c));
}

public static string StopAt(this string input, char stopAt)
{
    int x = input.IndexOf(stopAt);
    return input.Substring(0, x);
}

노트:

그러나 이것은 여전히 ​​내가 찾고있는 대답이 아닙니다. 나는 여전히 HTML의 난파선을 가지고 있는데, 구글 크롬에서 볼 때 HTML과 구조가 동일하지 않다. HTML에서 일부 검색하기 콘텐트가 포함 된 메타 태그에 대해 html로 내용이 적은 HTML을 축소 할 수있었습니다. 이것은 괜찮습니다. 그러나 HTML 컨텐트를 찾는이 방법을 계속한다면 그것은 같지 않을 수 있습니다 :(


인기 답변

    public MainWindow()
    {
        InitializeComponent();
        WB_1.Navigate(@"https://www.instagram.com/" + Console.ReadLine() + @"/?hl=en");

        WB_1.LoadCompleted += wb_LoadCompleted;
    }

    void wb_LoadCompleted(object sender, NavigationEventArgs e)
    {
        dynamic doc = WB_1.Document;
        string htmlText = doc.documentElement.InnerHtml;
    }


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.