如果您访问http://dota-trade.com/equipment?order=name并向下滚动,您会看到如果您向下滚动到页面底部,它会加载更多项目。以下代码从网页中抓取所有链接并将其保存到文本文件中。现在它只抓取所有可见的链接。如何获取所有链接,包括向下滚动时出现的链接?
如果您知道更好的方式来描述我的要求,请编辑我的帖子,我完全允许您根据自己的喜好编辑任何内容。谢谢你。
using HtmlAgilityPack;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication5
{
class Program
{
static void Main(string[] args)
{
WebClient wc = new WebClient();
var sourceCode = wc.DownloadString("http://dota-trade.com/equipment?order=name");
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(sourceCode);
var node = doc.DocumentNode;
var nodes = node.SelectNodes("//a");
List<string> links = new List<string>();
foreach (var item in nodes)
{
var link = item.Attributes["href"].Value;
links.Add(link.Contains("http") ? link : "http://dota-trade.com" +link);
Console.WriteLine(link.Contains("http") ? link : "http://dota-trade.com" + link);
}
System.IO.File.WriteAllLines(@"C:\Users\Public\WriteLines.txt", links);
}
}
}
附加信息:这是我从头到尾所做的一切:
我使用了 Microsoft Visual Studio Ultimate 2012 RTM。我安装了它(花了将近 2 个小时)。我启动了 Visual Studio 2012。我单击“文件”,然后单击“新建项目”,然后在“已安装 -> 模板 -> Visual C# -> Windows -> 控制台应用程序”下,然后按“确定”。应该会出现一个名为 Program.cs 的新页面。将代码粘贴到窗口中,覆盖已经存在的内容。下载 HtmlAgilityPack。我从 htmlagilitypack.codeplex.com 获得了我的现在单击“项目”,然后单击“添加参考”。弹出参考管理器后,单击“浏览”,然后单击弹出窗口右下方的“浏览”。导航到您下载的 HtmlAgilityPack 的 Net45 文件夹中的 HtmlAgilityPack.dll。现在按“确定”并按 F5。应该像魅力一样工作。--<