Iron Webscraper连接到主机,但不抓取吗?

时间:2019-07-31 15:46:48

标签: c# web-scraping

我正在尝试使用Iron Webscraper来获取网站上的名称列表。元素本身只是一个<article>元素,其中包含一个列表。没什么特别的。

但是,鉴于他们在其网站上拥有的代码示例,在我要从中进行抓取的网站上运行该代码示例之后,没有任何反应。

下面是扩展WebScraper类时必须实现的两个方法。在将Init()传递给this.Request()之前,我已经检查过public override void Init() { StringBuilder url = new StringBuilder(baseUrl); if (originType != OriginType.None) { string language = originType.GetEnumDescription(); if (!language.Equals(null)) { url.Append("/").Append(language); if (genderType != GenderType.None) { string gender = genderType.GetEnumDescription(); if (!gender.Equals(null)) { url.Append("/").Append(gender); } else { Console.WriteLine("Gender came back null in OriginItemCardScraper"); } } } else { Console.WriteLine("Language came back null in OriginItemCardScraper"); } } baseType = url.ToString().After("com/"); this.LoggingLevel = LogLevel.All; this.Request(url.ToString(), Parse); } 产生了正确的URL:

public override void Parse(Response response)
{
    foreach (var title_link in response.Css($@"<article class="" data-category=""{baseType}>"))
    {
        string strTitle = title_link.TextContentClean;
        Scrape(new ScrapedData() { { "Title", strTitle } });
    }
    Console.WriteLine();
}

但是代码永远不会到达以下方法:

store.flush()

所以这使我相信我从未得到回应。

enter image description here

我在这里想念什么?

1 个答案:

答案 0 :(得分:0)

看来原因是因为我没有使用StartAsync()。我这样做后,事情就开始起作用了。不知道为什么Start()不起作用。