当我尝试从此页面请求信息并将其写入txt文件时,我似乎被重定向到错误页面。它说'抱歉,键入不匹配'。我怎样才能获得这些信息。
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);
}
}
}
}
答案 0 :(得分:3)
您在HTML中遇到的“类型不匹配”是因为他们试图通过限制您的用户代理来阻止您抓取网站。
在拨打电话前将此内容添加到您的请求中:
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)";
这应该会为您提供所需的信息。