达永编程网

程序员技术分享与交流平台

分享一段源码挖掘IMDb电影信息

Python能抓取网页上的信息,当然bash也可以,今天小编就拿bash脚本来挖掘IMDb中的电影信息噢!!挺好玩的!!!

我们是做教育的,希望大家能够学到知识,这个一直是我们的初衷!!

电影网站https://www.imdb.com,这个网站我自己登入上去看了看,确实可以登入,并不需要挂vpn,可惜的是英文。

因为代码太长了,我分屏了一下,大伙可以看行号码,不过我会把源码分享出去。

代码里用到了大量的sed和grep,这个sed我之前有分享,改天找个机会说说grep的使用。

写好了运行一下吧,在脚本后面lawrence of arabia是电影的名字。

你看吧!出来一系列的电影了!当然你的英文要好!!

那我现在就分享一下代码吧!!

#!/bin/bash
#Date 2019-09-17
PATH=/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
 
titleurl="http://www.imdb.com/title/tt"
imdburl="http://www.imdb.com/find?s=tt&exact=true&ref_=fn_tt_ex&q="
tempout="/tmp/moviedata.$"
 
summarize_film()
{
 grep "" $tempout | sed 's/<[^>]*>//g;s/(more)//'
 grep --color=never -A2 '<h5>Plot:' $tempout | tail -1 |\
 cut -d\ -f1 | fmt | sed 's/^/ /'
 exit 0
}
trap "rm -f $tempout" 0 1 15
 
if [ $# -eq 0 ] ; then
 echo "Usage:$0 {movie title | movie ID}" >&2
 exit 1
fi
######
 
nodigits="$(echo $1 | sed 's/[[:digit:]]*//g')"
 
if [ $# -eq 1 -a -z "$nodigits" ] ;then
 lynx -source "$titleurl$1/combined" > $tempout
 summarize_film
 exit 0
fi
########
 
fixedname="$(echo $@ | tr ' ' '+')"
url="$imdburl$fixedname"
lynx -source $imdburl$fixedname > $tempout
 
fail="$(grep --color --color=never '<h1 class='findHeader'>No ' $tempout)"
 
if [ ! -z "$fail" ] ;then
 echo "Failed:no results foun for $1"
 exit 1
elif [ ! -z "$(grep '<h1 class='findHeader'>Displaying' $tempout)" ] ;then
 grep --color=never '/title/tt' $tempout | \
 sed 's/</\
 </g'>[ ]*$)' |\
 grep -A 1 "a href=" | \
 grep -v '^--</div><script nonce="Z2j3va6DrmgkAGDqETyAp" type="text/javascript" src="https://lf-dw.toutiaostatic.com/obj/toutiao-duanwai/toutiao/toutiao_web_pc/common/syl_page.b67e737d.js" crossorigin="anonymous"></script><script nonce="Z2j3va6DrmgkAGDqETyAp" type="text/javascript" src="https://lf-dw.toutiaostatic.com/obj/toutiao-duanwai/toutiao/toutiao_web_pc/common/htmlparser2.7ef956fe.js" crossorigin="anonymous"></script><script nonce="Z2j3va6DrmgkAGDqETyAp" type="text/javascript" src="https://lf-dw.toutiaostatic.com/obj/toutiao-duanwai/toutiao/toutiao_web_pc/common/tt_pc_bricks.0d274a27.js" crossorigin="anonymous"></script><script nonce="Z2j3va6DrmgkAGDqETyAp" type="text/javascript" src="https://lf-dw.toutiaostatic.com/obj/toutiao-duanwai/toutiao/toutiao_web_pc/common/collect.9c3f3aed.js" crossorigin="anonymous"></script><script nonce="Z2j3va6DrmgkAGDqETyAp" type="text/javascript" src="https://lf-dw.toutiaostatic.com/obj/toutiao-duanwai/toutiao/toutiao_web_pc/common/react.ab24d615.js" crossorigin="anonymous"></script><script nonce="Z2j3va6DrmgkAGDqETyAp" type="text/javascript" src="https://lf-dw.toutiaostatic.com/obj/toutiao-duanwai/toutiao/toutiao_web_pc/common/runtime.432dd451.js" crossorigin="anonymous"></script><script nonce="Z2j3va6DrmgkAGDqETyAp" type="text/javascript" src="https://lf-dw.toutiaostatic.com/obj/toutiao-duanwai/toutiao/toutiao_web_pc/common/vendor.ebda6d23.js" crossorigin="anonymous"></script><script nonce="Z2j3va6DrmgkAGDqETyAp" type="text/javascript" src="https://lf-dw.toutiaostatic.com/obj/toutiao-duanwai/toutiao/toutiao_web_pc/pages/newsDetail/index.093cb1f7.js" crossorigin="anonymous"></script></body></html> | \
 sed 's/<a href='\/title\/tt//g;s/<\/a>//' | \
 awk '(NR %2 ==1){title=$0} (NR %2 ==0){print title' 0 \ sed s\.>/: /'|\
 sort
fi
exit 0
</pre><p>大家可以复制下来运行一下,不懂的话直接私信小编,或者加群讨论!!一起学习一起进步!!!</p><p>我们是做教育的,希望大家能够学到知识,这个一直是我们的初衷!!</p><p>记住噢,加群讨论噢,不懂的可以问,也有人回答的。</p></div></div>
	<p class="post-tags">标签:<a href="https://www.dayon66.com/tags-59.html" target="_blank">分享网站源码</a> </p>	<p class="post-footer">
		作者:dayon66 , 分类:技术文章 , 浏览:26 , 评论:0	</p>
</div>

		</div>
		<div id="divSidebar">


<dl class="function" id="divContorPanel">
<dt class="function_t">控制面板</dt><dd class="function_c">

<div><span class="cp-hello">您好,欢迎到访网站!</span><br/><span class="cp-login"><a href="https://www.dayon66.com/zb_system/cmd.php?act=login">登录后台</a></span>  <span class="cp-vrs"><a href="https://www.dayon66.com/zb_system/cmd.php?act=misc&type=vrs">查看权限</a></span></div>


</dd>
</dl>
<dl class="function" id="divCatalog">
<dt class="function_t">网站分类</dt><dd class="function_c">


<ul><li><a title="技术文章" href="https://www.dayon66.com/category-1.html">技术文章</a></li>
</ul>

</dd>
</dl>
<dl class="function" id="divComments">
<dt class="function_t">最新留言</dt><dd class="function_c">


<ul></ul>

</dd>
</dl>		</div>
		<div id="divBottom">
			<!--<p id="BlogPowerBy">Powered By <a href="https://www.zblogcn.com/" title="Z-BlogPHP 1.7.4 Build 173400" target="_blank" rel="noopener noreferrer">Z-BlogPHP 1.7.4</a></p>-->
			<p id="BlogCopyRight"><a href="https://beian.miit.gov.cn/" target="_blank">滇ICP备2024046894号-10</a></p>
		</div><div class="clear"></div>
	</div><div class="clear"></div>
	</div><div class="clear"></div>
</div>
</body>
</html><!--58.93 ms , 7 queries , 2686kb memory , 0 error-->