Question

Quelqu'un peut-il me aider à résoudre s'il vous plaît mon code.? Je ne vois pas où je vais mal. Il ne fonctionne tout simplement pas ce qu'il devrait faire.

Il devrait lire une ligne de fichiers en ligne (chaque ligne contient 1 URL), puis url foreach dans la chaîne, il visitera cette URL et en extraire le titre, l'URL et le corps du texte, puis enregistrez-le dans un fichier mais juste ne fait rien. La seule erreur que je reçois est: « Référence d'objet non définie à une instance d'un objet » qui pointe vers la ligne de code suivante:

u = w.Document.Body.InnerText;

Voici le code complet:

    OpenFileDialog of =
        new OpenFileDialog();
    of.Title =
        "app name - Select File";
    using (of)
    {
        try
        {
            Cursor = Cursors.WaitCursor;
            if (of.ShowDialog() == DialogResult.OK)
            {
                string[] file =
                    File.ReadAllLines(
                    of.FileName);


                foreach (string line in file)
                {
                    w.Navigate(line);
                    string t,
                        d,
                        u,
                        path =
                        @"file.txt";

                        t =
                            w.DocumentTitle;
                        u =
                            w.Document.Body.InnerText;
                        d =
                            w.Url.AbsolutePath;
                        t =
                            t.Substring(0,
                            250);
                        t =
                            t.Replace(
                            "\"",
                            "\\\"");

                        a.Text += "\n" +
                            u;

                        File.AppendAllText(path,
                            "s[" +
                            an +
                            "] = \"" +
                            t +
                            "^" +
                            u +
                            "^" +
                            url1 +
                            u +
                            url2 +
                            d +
                            "\";" +
                            Environment.NewLine);
                        an++;
                }
            }
            Cursor = Cursors.Default;
        }
        catch (Exception exception)
        {
            MessageBox.Show(exception.Message);
        }
    }

Je vous remercie des suggestions / aide à tous et je vous remercie:)

jase

Était-ce utile?

La solution

WebBrowser.Navigate est, IIRC, async. Il pourrait être préférable d'utiliser ici WebClient.DownloadString? ou HTML Agilité pack / Load?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top