【发布时间】:2016-09-07 21:08:23
【问题描述】:
我成功地让 scrapysharp 在控制台应用程序中工作。
我在 VS2013 中创建了一个新的 MVC Web 应用程序,没有进行身份验证或其他任何特殊操作。我用 nuget 添加了 ScrapySharp,然后在我的 Home Controller 中有这个代码。我的页面结果没有得到任何回应。有谁知道为什么?如何让 scrapysharp 在 MVC Web 应用程序中工作?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using ScrapySharp.Html.Forms;
using ScrapySharp.Network;
using ScrapySharp;
using HtmlAgilityPack;
using ScrapySharp.Extensions;
namespace scrapyB.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
var browser = new ScrapingBrowser();
browser.AllowAutoRedirect = true;
browser.AllowMetaRedirect = true;
var pageresult = browser.NavigateToPage(new Uri("https://google.com"));
var x = pageresult;
return View();
}
public ActionResult About()
{
ViewBag.Message = "Your application description page.";
return View();
}
public ActionResult Contact()
{
ViewBag.Message = "Your contact page.";
return View();
}
}
}
编辑 实际上,我只是尝试了一个 Windows 窗体应用程序,但 NavigateToPage 也没有返回结果。这很奇怪,但它似乎只适用于控制台应用程序。有谁知道如何让 ScrapySharp 在控制台应用程序以外的其他地方工作?
【问题讨论】:
-
我喜欢人们用 -1 标记问题并且不提供关于如何解决问题的见解。很有帮助。
-
请注意,model-view-controller 标签是针对有关模式的问题。 ASP.NET-MVC 实现有一个特定的标记。
-
谢谢。我选择 MVC 并没有考虑。我的错。我看已经修好了。我很感激。
-
您希望在 Web 项目中使用 ScrapySharp 做什么?对我来说,有一个项目在概念上似乎很奇怪,它既向客户端提供网页,又在服务器上模拟 Web 浏览器。
-
Scrapysharp 让我可以轻松地请求页面。登录,从页面获取表单并更改表单字段值,然后提交表单。它还可以从相关页面获取视图状态值,而无需我尝试弄清楚如何对 httpclient 或 httpwebclient 执行相同操作。我不得不处理没有 api 的第三方网站。如果有人知道更好的方法,我也愿意。
标签: c# asp.net-mvc scrapysharp