Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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网页中的所有相关URL?_C#_.net_Html Agility Pack - Fatal编程技术网

C# 如何检测HTML网页中的所有相关URL?

C# 如何检测HTML网页中的所有相关URL?,c#,.net,html-agility-pack,C#,.net,Html Agility Pack,如问题所述;是否有某种方法可以检测PHP页面中的所有URL(如果它们是相对的)。 当然,考虑到PHP页面中包含的URL可能以不同的行为出现: <link rel="stylesheet" href="/lib/css/hanv2/ie.css" /> <img src="/image.jpg"> <div style="background-image: url(/lib/data/emotion-header-v2/int-algemeen08.jpg)">

如问题所述;是否有某种方法可以检测PHP页面中的所有URL(如果它们是相对的)。 当然,考虑到PHP页面中包含的URL可能以不同的行为出现:

<link rel="stylesheet" href="/lib/css/hanv2/ie.css" />
<img src="/image.jpg">
<div style="background-image: url(/lib/data/emotion-header-v2/int-algemeen08.jpg)"></div>

我想知道是否有一种好的或更准确的方法来获取给定HTML页面的所有相对路径,使用或其他简单的方法

您可以使用此xpath表达式从HTML页面提取相对URL,这些URL是href或src值:

htmlSnippet.DocumentNode.SelectNodes("(//@src|//@href)[not(starts-with(.,'http://'))][not(starts-with(.,'https://'))]");
您可能希望筛选以#开头的链接,这些链接用于跳转到当前页面上的特定位置(例如:):


Htmlagibility pack无法正确解析PHP源代码,即使它不可能包含呈现的链接。。。您确定需要解析PHP,而不是由某些服务器端代码(可能是PHP)生成的HTML吗?谢谢-更正了标题:)
htmlSnippet.DocumentNode.SelectNodes("(//@src|//@href)[not(starts-with(.,'http://'))][not(starts-with(.,'https://'))]");
    htmlSnippet.DocumentNode.SelectNodes("(//@src|//@href)[not(starts-with(.,'http://'))][not(starts-with(.,'https://'))][not(starts-with(.,'#'))]");