我一直在关注如何使用HTMLAgilityPack抓取信息的教程,这是一个示例:
using System;
using System.Linq;
using System.Net;
namespace web_scraping_test
{
class Program
{
static void Main(string[] args)
{
HtmlAgilityPack.HtmlWeb web = new HtmlAgilityPack.HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load("http://www.yellowpages.com/search?search_terms=Software&geo_location_terms=Sydney2C+ND");
var names = doc.DocumentNode.SelectNodes("//a[@class='business-name']").ToList();
foreach (var item in names)
{
Console.WriteLine(item.InnerText);
}
}
}
}
这很容易获得数据,因为有一个通用的类名,并且很容易获得
我正在尝试使用它来从此网站https://osu.ppy.sh/beatmapsets/354163#osu/780200
抓取信息但是我不知道正确的标记以获得“针迹” 肖恩·门德斯(Shawn Mendes)和此图中给出的值:Diagram
对于“ Shawn Mendes”,标记为'<a class="beatmapset-header__details-text beatmapset-header__details-text--artist" href="https://osu.ppy.sh/beatmapsets?q=Shawn%20Mendes">Shawn Mendes</a>'
但是我不确定如何在代码中实现这一点。我已经替换了URL并更改了类名,但是此文本的目录在此站点上似乎复杂得多。任何建议将不胜感激,谢谢!
答案 0 :(得分:-1)
您要查找的所有详细信息似乎都在标记中的JSON对象中。有一个ID为“ json-beatmapset”的脚本块,如果您将其内容抓取并解析其中包含的JSON,则此后应该会顺利进行。