2

コンソールアプリでscrapysharpを正常に動作させました。

VS2013 で新しい MVC Web アプリを作成しましたが、認証も特別なものもありませんでした。nuget を使用して ScrapySharp を追加し、このコードをホーム コントローラーに配置しました。pageresult に応答がありません。誰にも理由はありますか?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 をコンソールアプリ以外で動作させる方法を知っている人はいますか?

4

1 に答える 1

3

わかりましたので、scrapysharp には NavigateToPageAsync 関数があります。これにより、期待どおりの結果が返されます。

Form.submit() も NavigateToPage を使用しますが、代わりに NavigateToPageAsync を使用し、正しいパラメーターを渡してフォームを送信することができます。

于 2016-09-08T21:06:21.197 に答える