我下载了一些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 和 Sabil Muhammad
html页面当然有很多行,但我只想关注上面的代码块并提取所有用户名和相应的链接,并将它们放入日志文件中
这有什么好的脚本吗? 我知道bash和c / c ++
谢谢!
答案 0 :(得分:0)
如果你使用jQuery,那很容易。但是,如果您使用bash或c / c ++进行操作,则需要检索页面内容并解析您感兴趣的元素。您可以将元素视为XML并相当容易地解析属性。 / p>
您可以使用正则表达式或与子字符串匹配的简单文本。
答案 1 :(得分:0)
使用awk(如果你擅长bash)你可以逐行阅读页面并设置过滤器来捕捉<p class="metadata">
并开始复制并结束复制,如果你面对</p>
然后处理提取的部分,依此类推......
答案 2 :(得分:0)
您可以通过遍历所有“metadata
”类并提取所需内容来使用jQuery来完成此类操作:
//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);
});
});
<强> Working Example 强>