提取一个HTML页面元素(extract elements from a html page)

2019-10-17 12:40发布

我下载一些YouTube的评论页面,我想提取用户名(或用户的显示名称),并像下面的代码块的链接:

 <p class="metadata">
      <span class="author ">
        <a href="/channel/UCuoJ_C5xNTrdnc4motXPHIA" class="yt-uix-sessionlink yt-user-name " data-sessionlink="ei=CKG174zFqbQCFZmaIQodtmyE0A%3D%3D" dir="ltr">Sabil Muhammad</a>
      </span>
        <span class="time" dir="ltr">
          <a dir="ltr" href="http://www.youtube.com/comment?lc=S2ZH2gSPYaef43vTRkLDxUzo2fYicVUc3SFvmYq2jrs">
            il y a 1 jour
          </a>
        </span>
    </p>

我想提取/渠道/ UCuoJ_C5xNTrdnc4motXPHIA和塞比勒穆罕默德

当然有很多很多线路中的HTML页面,但我只希望把重点放在代码块如上述,并提取所有的用户名和相应的链接,并把它们放到一个日志文件

有没有这方面的任何好的剧本? 我知道bash和C / C ++

谢谢!

Answer 1:

你可以使用jQuery的通过所有“的迭代来完成这样的metadata ”类和拉你所需要的内容:

//After including jQuery within your page
$(document).ready(function()
{
    //Iterates through each of the metadata tags
    $('.metadata').each(function()
    {
          //Pulls the username
          var username = $('.yt-user-name', this).text();
          //Pulls the link
          var link = $('.time a', this).attr('href');
          //Process each accordingly
          alert(username + ':' + link);
    });
});

工作实例



Answer 2:

如果你使用jQuery,这是相当容易的。 但是,如果你这样做是在bash或C / C ++,你需要检索页面的内容和解析你所感兴趣的内容,你可以把元素作为XML并解析属性相当容易。

你可以使用正则表达式,或者简单的文本匹配与子字符串。



Answer 3:

与AWK(如果你在bash良好),可以逐行读取页线,把一个过滤器捕捉<p class="metadata">并开始复制和结束拷贝,如果你面对</p>

然后在该提取一部分工作,等等...



文章来源: extract elements from a html page