Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#在html中搜索,获取链接,跟踪它们并从每个页面获取一些信息_C#_Html_Excel - Fatal编程技术网

C#在html中搜索,获取链接,跟踪它们并从每个页面获取一些信息

C#在html中搜索,获取链接,跟踪它们并从每个页面获取一些信息,c#,html,excel,C#,Html,Excel,我不要求完整的解决方案。很高兴听到任何建议 如果已经有人问过这样的问题,我很抱歉。 嗯,我有一个包含很多行的html文件(保存在我的电脑上)。 例如: </li><li class="vertical" style="width: 20%;"> <div class="item-box vertical flex-auto"> <div class="image-box vertical center flex-auto"><a target

我不要求完整的解决方案。很高兴听到任何建议

如果已经有人问过这样的问题,我很抱歉。 嗯,我有一个包含很多行的html文件(保存在我的电脑上)。 例如:

</li><li class="vertical" style="width: 20%;">
<div class="item-box vertical flex-auto">
<div class="image-box vertical center flex-auto"><a target="_blank" href="https://www.aliexpress.com/item/-/32794448855.html?scm=1007.14110.78103.0&amp;pvid=98337ce3-4886-4639-99f3-5dcaf226a0af" class="fade-in"><img src="./Электроника – Распродажа «Нам 7 лет» – AliExpress.com_files/HTB1fDZgPFXXXXXiapXXq6xXFXXXQ.jpg_350x350.jpg" alt="KingDian Новый Универсальный 2.5 &quot;до 3.5&quot; SSD HDD Окружающей Среды Пластмасс Адаптер Кронштейн Держатель Жесткого Диска для Настольных ПК"> </a></div>
我需要抓住所有这类链接。将它们导出到任何类型的文档。跟着他们。在每一页上,我需要找到包含价格的行(每一页上的Id“j-sku-discount-price”)

和出口价格,这样它将接近其联系

例如:

如果它可以存储在Excel中,那就太完美了


谢谢您的想法。

您应该使用HTMLAlityPack,然后在HTML文档中使用它。 但是首先从站点下载字符串。给你,我帮你举了个例子:

string urlAddress = "https://www.aliexpress.com/item/-/32794448855.html?scm=1007.14110.78103.0&amp;pvid=98337ce3-4886-4639-99f3-5dcaf226a0af";

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlAddress);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string data = "";
if (response.StatusCode == HttpStatusCode.OK)
{
     Stream receiveStream = response.GetResponseStream();
     StreamReader readStream = null;

     if (response.CharacterSet == null)
     {
         readStream = new StreamReader(receiveStream);
     }
     else
     {
         readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
     }

     data = readStream.ReadToEnd();


     response.Close();
     readStream.Close();
}

HtmlDocument document2 = new HtmlAgilityPack.HtmlDocument();
document2.LoadHtml(data);


var value = document2.GetElementbyId("j-sku-discount-price").InnerHtml; //value is "3.94"

看来你只是给了我们要求。你有没有试过实现这个?我试过了。我已经成功地使用Perl获得了价格。但我不知道如何使用C#实现这一点。我不要求提供完整的解决方案。我很乐意得到任何暗示。
<span id="j-sku-discount-price" class="p-price" itemprop="price" style="color: rgb(247, 43, 76);">4&nbsp;467,04</span>
4&nbsp;467,04
https://www.aliexpress.com/item/-/32794448855.html?scm=1007.14110.78103.0&amp;pvid=98337ce3-4886-4639-99f3-5dcaf226a0af 4&nbsp;467,04
string urlAddress = "https://www.aliexpress.com/item/-/32794448855.html?scm=1007.14110.78103.0&amp;pvid=98337ce3-4886-4639-99f3-5dcaf226a0af";

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlAddress);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string data = "";
if (response.StatusCode == HttpStatusCode.OK)
{
     Stream receiveStream = response.GetResponseStream();
     StreamReader readStream = null;

     if (response.CharacterSet == null)
     {
         readStream = new StreamReader(receiveStream);
     }
     else
     {
         readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
     }

     data = readStream.ReadToEnd();


     response.Close();
     readStream.Close();
}

HtmlDocument document2 = new HtmlAgilityPack.HtmlDocument();
document2.LoadHtml(data);


var value = document2.GetElementbyId("j-sku-discount-price").InnerHtml; //value is "3.94"