shell——html抓取链接

由url获得源码:wget -O url $html_file $input_file

去掉注释<!--.*--> : sed -i -e ":begin;/<!--/,/-->/ {/-->/!{$!{N;b begin};};s/<!--.*-->//;};" $html_file

-i:直接在原文件上修改,-e:同时执行多条命令

  • 首先花括号{}代表命令块的开始,类似c的语法,后面就不再说了。
  • :begin,这是一个标号,man中叫做label,也就是跳转标记,供b和t命令用,本例中使用了b命令。
  • /<<</,/>>>/,这是一个地址范围(Addresses),后面{}中的命令只对地址范围之间的内容使用。其中逗号前面的部分是开始地址,逗号后面是结束地址,都是正则表达式。由于sed是“流”式“行”处理,所以结束地址是可以省略的,即如果地址的结束范围不存在,那么将一直处理到文件结尾。本例中使用这个地址范围主要是缩小处理的数据量,因为虽然后面用N命令把对一行的处理扩展为了多行,但如果从文件开头一直N扩展到<<<出现为止,buffer中要处理的字符串可能会很长,影响效率。所以去掉这个处理范围也是能够得到正确结果的,

获取含有链接的行并使用正则表达式抽取链接:cat $html_file | grep "<a.*href*" | sed ‘s/\(.*\)href="\([^"\n]*\)"\(.*\)/\2/g‘ >$href_file

if..fi

if.. else..fi

if..elif..else..fi

逐行处理文件中内容:

http://www.cnblogs.com/dwdxdy/archive/2012/07/25/2608816.html

while read line

do

done<$file

shell脚本--if判断(数字条件、字符串条件)http://blog.csdn.net/yusiguyuan/article/details/17054231

http://www.cnblogs.com/chengmo/archive/2010/10/02/1841355.html

http://blog.csdn.net/fitywang/article/details/2156089

判断某个字符串是否以某个子串开头:[[..]]表示匹配,里面可以用正则表达式;[..]表示判断。=~表示匹配符

if [[ "$line_url" =~ "mailto*" ]];then
        continue

==的功能在[[]]和[]中的行为是不同的,如下:

[cpp] view plaincopy

    1. [[ $a == z* ]]   # 如果$a以"z"开头(模式匹配)那么将为true
    2. [[ $a == "z*" ]] # 如果$a等于z*(字符匹配),那么结果为true
    3. [ $a == z* ]     # Fi
时间: 2024-10-22 03:19:01

shell——html抓取链接的相关文章

shell脚本抓取问题进程

引用原文shell脚本:#/bin/bashLOAD=$(awk '{print $1}' /proc/loadavg)CPUNUM=$(grep -c processor /proc/cpuinfo) if [ $(echo "$LOAD > $CPUNUM" | bc) = 1 ]; then    RESULT=$(ps -eo pcpu,pmem,user,args | awk '$1 > 0' | sort -nr)    if [ -n "$RESUL

自动发送密码抓取远程日志用Shell脚本如何实现?

在linux系统中,如何用shell脚本抓取远程日志?分析线上的日志会有一个困境,机器太多,如果每台都登录上去看不太现实,但是下载下来更麻烦因为每台SCP都要求输入密码.于是我便写了一个自动抓取远程日志的脚本,实现在基本功能. 代码: #!/usr/bin/expect -f if { $argc !=1 && $argc !=2 } {send_user "没有输入远程日志文件名.\n"send_user "格式是:get.sh ${remote_log}

Python3分析sitemap.xml抓取导出全站链接

最近网站从HTTPS转为HTTP,更换了网址,旧网址做了301重定向,折腾有点大,于是在百度站长平台提交网址,不管是主动推送还是手动提交,前提都是要整理网站的链接,手动添加太麻烦,效率低,于是就想写个脚本直接抓取全站链接并导出,本文就和大家一起分享如何使用python3实现抓取链接导出. 首先网站要有网站地图sitemap.xml文件地址,其次我这里用的是python3版本,如果你的环境是python2,需要对代码进行调整,因为python2和python3很多地方差别还是挺大的. 下面是pyt

scrapy-splash抓取动态数据例子六

一.介绍 本例子用scrapy-splash抓取中广互联网站给定关键字抓取咨询信息. 给定关键字:打通:融合:电视 抓取信息内如下: 1.资讯标题 2.资讯链接 3.资讯时间 4.资讯来源 二.网站信息 三.数据抓取 针对上面的网站信息,来进行抓取 1.首先抓取信息列表 抓取代码:sels = site.xpath('//li[@class="content_list clearfix"]') 2.抓取标题 首先列表页面,根据标题和日期来判断是否自己需要的资讯,如果是,就今日到资讯对应

scrapy-splash抓取动态数据例子二

一.介绍 本例子用scrapy-splash抓取一点资讯网站给定关键字抓取咨询信息. 给定关键字:电视:数字电视:OTT 抓取信息内如下: 1.资讯标题 2.资讯链接 3.资讯时间 4.资讯来源 二.网站信息 三.数据抓取 针对上面的网站信息,来进行抓取 1.首先抓取信息列表,由于信息列表的class值有“item doc style-small-image style-content-middle” 和“item doc style-multi-image”两种情况,所以用contains包含

scrapy-splash抓取动态数据例子十一

一.介绍 本例子用scrapy-splash抓取活动树网站给定关键字抓取活动信息. 给定关键字:数字:融合:电视 抓取信息内如下: 1.资讯标题 2.资讯链接 3.资讯时间 4.资讯来源 二.网站信息 三.数据抓取 针对上面的网站信息,来进行抓取 1.首先抓取信息列表 抓取代码:sels = site.xpath("//div[@id ='eventList']/div[@class ='list']") 2.抓取标题 抓取代码:title = str(sel.xpath('.//di

scrapy-splash抓取动态数据例子五

一.介绍 本例子用scrapy-splash抓取智能电视网网站给定关键字抓取咨询信息. 给定关键字:打通:融合:电视 抓取信息内如下: 1.资讯标题 2.资讯链接 3.资讯时间 4.资讯来源 二.网站信息 三.数据抓取 针对上面的网站信息,来进行抓取 1.首先抓取信息列表 抓取代码:sels = site.xpath('//div[@class="listl list2"]/ul/li') 2.抓取标题 首先列表页面,根据标题和日期来判断是否自己需要的资讯,如果是,就今日到资讯对应的链

scrapy-splash抓取动态数据例子八

一.介绍 本例子用scrapy-splash抓取界面网站给定关键字抓取咨询信息. 给定关键字:个性化:融合:电视 抓取信息内如下: 1.资讯标题 2.资讯链接 3.资讯时间 4.资讯来源 二.网站信息 三.数据抓取 针对上面的网站信息,来进行抓取 1.首先抓取信息列表 抓取代码:sels = site.xpath('//div[contains(@class,"news-view")]') 2.抓取标题 抓取代码:title = sel.xpath('.//div[@class=&qu

[Python爬虫] 之十九:Selenium +phantomjs 利用 pyquery抓取超级TV网数据

一.介绍 本例子用Selenium +phantomjs爬取超级TV(http://www.chaojitv.com/news/index.html)的资讯信息,输入给定关键字抓取资讯信息. 给定关键字:数字:融合:电视 抓取信息内如下: 1.资讯标题 2.资讯链接 3.资讯时间 4.资讯来源 二.网站信息 三.数据抓取 针对上面的网站信息,来进行抓取 1.首先抓取信息列表 抓取代码:Elements = doc('ul[class="la_list"]').find('li') 2.