views:

29

answers:

1

I'm getting redirected to an error page it seems when I try to request info from this page and write it to a txt file. It says 'Sorry, Type Mismatch.' How can I get this info.

namespace webscrape
{
    class Program
    {
        [STAThread]
        static void Main(string[] args) {

            try {
                // Modify as appropriate:
                const string baseUri = "http://www.rogersmushrooms.com/gallery/default~GID~253~chr~a.asp";

                // This cookie container will persist the ASP.NET session ID cookie
                CookieContainer cookies = new CookieContainer();

                // our third request is for the actual webpage after the login.
                HttpWebRequest request =
                (HttpWebRequest)WebRequest.Create(baseUri);
                request.Method = "GET";
                request.CookieContainer = cookies;
                //get the response object, so that we may get the session cookie.
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                StreamReader reader =
                    new StreamReader(response.GetResponseStream());

                // and read the response
                string page = reader.ReadToEnd();

                reader.Close();

                // create a writer and open the file
                TextWriter tw = new StreamWriter("anchor.txt");

                // write a line of text to the file
                tw.WriteLine(page);

                // close the stream
                tw.Close();

                // our webpage data is in the 'page' string.
                Console.WriteLine(page);
            }

            catch(Exception ex) {
                Console.WriteLine(ex);
            }
        }

    }
}
+3  A: 

The "type mismatch" you are reffering to in the HTML is because they are trying to stop you from scraping the site by limiting your user agent.

add this to your request before making the call:

request.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)"; 

That should give you the information you need.

Madabitjer
This will fix it.
thekaido