我使用htmlagilitypack从here获取信息。这是代码
int i=2449520;
.....................
web.OverrideEncoding = Encoding.UTF8;
web.UserAgent = "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0";
doc = web.Load("http://ru-patent.info/24/49/" + i + ".html");
var List = doc.DocumentNode.SelectNodes("//div[@style='padding:10px; border:#999 dotted 1px; background-color:#FFF; background-image:url(/imgs/back.gif);']");
foreach (var t in List)
{
Regex regex = new Regex(@"\sRU\s\d+");
Match match = regex.Match(t.InnerText);
sw.WriteLine(i.ToString());
while (match.Success)
{
sw.WriteLine(match.ToString());
match = match.NextMatch();
}
sw.WriteLine('\n');
}
i++;
我还使用间隔为10秒的计时器,我需要从中获取信息的页数超过数千页。但在大约30页后,我得到403禁止错误。我怎么能绕过这个?
答案 0 :(得分:1)
Response 403表示服务器拒绝接受您的请求。我想这可以是DDoS的服务器保护。您可以使用不同的服务器(具有不同的API地址)或尝试在请求之间中断。同样,向网站所有者询问解析其信息的最佳方式总是好的。