Html 如何解析网站并获取信息

Html 如何解析网站并获取信息,html,ruby,nokogiri,traversal,Html,Ruby,Nokogiri,Traversal,我正在尝试解析一个网站。这就是我正在做的。我下载源代码并使用nokogiri遍历数据,获得我需要的信息,如链接、内容等。我已经有了获取数据的脚本。但是我遇到了一个问题,当你在一个实时站点上点击这个链接时,它才起作用 这就是我试图遍历的示例源代码 <div class="story-item-content group"> <div class="story-item-details"> <h3 class="story-item-title"> &

我正在尝试解析一个网站。这就是我正在做的。我下载源代码并使用nokogiri遍历数据,获得我需要的信息,如链接、内容等。我已经有了获取数据的脚本。但是我遇到了一个问题,当你在一个实时站点上点击这个链接时,它才起作用

这就是我试图遍历的示例源代码

<div class="story-item-content group">
<div class="story-item-details">
  <h3 class="story-item-title">
    <a href="/story/r/how_not_to_fix_your_computer_part_2" target="_blank" class="external-link ">How NOT to fix your computer, part 2.</a>
    <span class="external-link-icon"></span>                                            
    </h3>
    <p class="story-item-description">
         <a href="/search?q=site:zug.com" class="story-item-source" title="More stories from zug.com">zug.com</a>                            <a href="/news/technology/how_not_to_fix_your_computer_part_2" class="story-item-teaser">&mdash; After you read this you should understand what not to do.
        <span class="timestamp">21 hr 59 min ago</span></a>
        <a class="crawl4link" href="http://crawl4.digg.internal/permalink/view/how_not_to_fix_your_computer_part_2">View in Crawl 4</a>
    </p>
</div>

所以在第四行。链接href=“/story/r/how\u not\u修复您的计算机\u部件\u 2


仅在实时站点中有效。当我下载源代码并单击链接时,它将不起作用。我猜链接保存在服务器中。知道如何获取完整链接吗?我正在考虑使用一个脚本来单击该链接,这样我就可以获得工作链接。知道如何做到吗?thnx

这是一个相对链接,相对于网站的根目录。只需预先添加域(即example.com/story/r/how\u not\u修复您的计算机\u part\u 2)

单击链接不起作用的原因是,href值是相对的…相对于文件存储的位置。一旦您将页面下载到本地计算机,它就不再相对于原始域,浏览器将假定它正在查找处的文件。并且由于该URL处没有文件或资源,它失败了

您要做的是将href值更改为一个绝对url,方法是预先添加原始域(即digg.com/story/r/how\u not\u到\u fix\u your\u computer\u part\u 2)。然后,当您从本地驱动器单击该值时,它将起作用


当url最终解析时,您无需担心添加到url上的数字,这些数字将由digg.com/story/r/how_not__修复您的计算机第二部分url上的资源处理。

该url是一个相对url

因此,如果您所在的网站是:

那么你的完整链接是


这真的很难吗?您正在使用URL访问该页面。如果您将所有内容从末尾切掉,使其仅为域,然后将其附加到以
/
开头的路径的开头,您就有了它将在服务器上访问的URL。问题是一些链接会向其附加数字。例如。htttp://www.example.com/story/r/如何不修复您的计算机零件?2-1234.html,这样我就无法通过查看源代码获得完整的链接。对此有何建议?另请参阅,而不是“单击链接”,您可能希望使用curl或类似的库下载它。某些链接将附加数字。例如,当我单击该链接时,它将转到“htttp:://example.com/story/r/how_not_to_fix_your_computer_part_2-123523.html“所以我不知道如何获得完整链接