Wget 高级技巧
0
无    2020-09-02 12:03:14    1    0
myron



加了防爬虫也没用!使用 --execute robots=off 参数,轻松搞定https://crate.io/docs整站镜像!


________________________________________________________________________

curl 使用本地代理

curl -p --socks5 127.0.0.1:6666 -Lo kubectl http://storage.googleapis.com/kubernetes-release/release/v1.3.0/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/

________________________________________________________________________

root / Bt3rqtXSVAV2q5Se

192.168.20.159
192.168.20.165
用户名 muyoufang
密码 Dld1d;A1L9[CM)
Eosgt_X8GOu2YCakpZQSW(j4


Dld1d;A1L9[CM)Eosgt_X8GOu2YCakpZQSW(j4


miger@miger-Latitude-E6400-ATG:~$ nmap -sT readers365.com

Starting Nmap 5.21 ( http://nmap.org ) at 2016-07-19 11:08 CST
Nmap scan report for readers365.com (162.247.97.29)
Host is up (0.060s latency).
Not shown: 994 filtered ports
PORT STATE SERVICE
21/tcp open ftp
80/tcp open http
113/tcp closed auth
683/tcp open corba-iiop
3389/tcp open ms-term-serv
5555/tcp open freeciv



________________________________________________________________________


wget 是一个命令行的下载工具。对于我们这些 Linux 用户来说,几乎每天都在使用它。下面为大家介绍几个有用的 wget 小技巧,可以让你更加高效而灵活的使用 wget。

$ wget -r -np -nd http://example.com/packages/
e
这条命令可以下载 http://example.com 网站上 packages 目录中的所有文件。其中,-np 的作用是不遍历父目录,-nd 表示不在本机重新创建目录结构。

$ wget -r -np -nd --accept=iso http://example.com/centos-5/i386/

与上一条命令相似,但多加了一个 --accept=iso 选项,这指示 wget 仅下载 i386 目录中所有扩展名为 iso 的文件。你也可以指定多个扩展名,只需用逗号分隔即可。

$ wget -i filename.txt

此命令常用于批量下载的情形,把所有需要下载文件的地址放到 filename.txt 中,然后 wget 就会自动为你下载所有文件了。

$ wget -c http://example.com/really-big-file.iso

这里所指定的 -c 选项的作用为断点续传。

$ wget -m -k (-H) http://www.example.com/

该命令可用来镜像一个网站,wget 将对链接进行转换。如果网站中的图像是放在另外的站点,那么可以使用 -H 选项。

下载整站
$ wget -b -r -p -k -np http://bj.58.com/ershoufang

$ wget --referer=http://www.xazq.com.cn/soft/sort05/down-8248.html "http://www.xazq.com.cn/soft/download.asp?softid=8248&downid=0&id=8974"

从一个网站下载指定类型的文件(例如 pdf 和 png).

# wget -r -A png,pdf http://www.website-name.com

_________________________________________________________________

5 个基于Linux命令行的文件下载和网站浏览工具
2015-06-17 10:06:27 1846浏览
0评论

Linux命令行是GNU/Linux中最神奇迷人的部分,它是非常强大的工具。命令行本身功能多样,多种内建或者第三方的命令行应用使得Linux变得更加健壮和强大。Linux Shell支持多种不同类型的网络应用,无论是BT下载软件,专用下载器或者互联网冲浪。

图片描述

5个命令行互联网工具

这里我们介绍了5个很好的命令行互联网工具,它们非常有用,也很容易上手。
1. rTorrent

rTorrent是基于文本,用C++编写,追求高性能的Torrent客户端。支持大部分标准的Linux发行版,包括FreeBSD和Mac OS X。

安装rTorrent

# apt­-get install rtorrent (基于 APT 的系统)

# yum install rtorrent (基于 YUM 的系统)

在终端中用下面的命令检查rtorrent是否正确安装

# rtorrent

图片描述

rTorrent命令行工具

rTorrent的功能

一些有用的快捷键和使用方法:

CTRL+ q – 退出rTorrent应用程序
CTRL+ s – 开始下载
CTRL+ d – 停止运行中的下载或者移除已完成的下载
CTRL+ k – 停止并关闭运行中的下载
CTRL+ r – 在上传/下载种子之前进行Hash检查
CTRL+ q – 执行两次这个命令,rTorrent会直接退出而不发送“停止”信号
Left Arrow Key – 跳到上一屏幕
Right Arrow Key – 跳到下一屏幕

2.Wget

Wget是GNU项目的一部分,名字由World Wide Web (WWW)衍生而来。Wget是用来递归下载、离线查看本地服务器HTML文件一个很好的工具,它可用于Windows, Mac,以及Linux等大部分平台。Wget能通过HTTP,HTTPS和FTP下载文件。另外,能镜像整个网站,支持代理浏览以及暂停/回复下载使得它更为有用。

安装Wget

由于是GNU项目的一部分,Wget捆绑在大部分标准Linux发行版中,不再需要独立下载安装。如果默认没有安装,你也可以使用apt或者yum安装。

# apt­-get install wget (基于 APT 的系统)

# yum install wget (基于 YUM 的系统)

Wget的一些基本用法

使用wget下载一个单独的文件。

# wget http://www.website-name.com/file

递归下载整个网站。

# wget -r http://www.website-name.com

从一个网站下载指定类型的文件(例如 pdf 和 png).

# wget -r -A png,pdf http://www.website-name.com

Wget是一个很棒的工具,它允许在资源有限的机器上自定义或者过滤下载。这是镜像一个网站(Yahoo.com)的wget下载截图。

图片描述

Wget 命令行文件下载

要获取更多wget下载的例子,可以阅读我们的文章Wget下载命令例子。
3. cURL


shell神器curl用法笔记

curl可以模仿浏览器,可以当下载器,当你只是在处理一些shell工作时、测试,要图形界面干嘛?或者,要一个下载器干嘛。
基本用法(配合sed/awk/grep)

$curl http: //bpsky.net
下载保存

$curl http://bpsky.net > index.html

$curl -o index.html http://bpsky.net

$curl -O http://bpsky.net/target.tar.gz
通过代理

$curl -x 123.45 . 67.89 : 1080 -o page.html http://bpsky.net
保存cookie

$curl -x 123.45 . 67.89 : 1080 -o page1.html -D cookie0001.txt http://bpsky.net
使用cookie

$curl -x 123.45 . 67.89 : 1080 -o page1.html -D cookie0002.txt -b cookie0001.txt http://bpsky.net
模仿浏览器

$curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45 . 67.89 : 1080 -o page.html -D cookie0001.txt http://bpsky.net
伪造referer

$curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45 . 67.89 : 1080 -e "mail.yahoo.com" -o page.html -D cookie0001.txt http://bpsky.net
循环下载

$curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen[1-10].JPG
循环(匹配)下载

$curl -O http://cgi2.tky.3web.ne.jp/~{zzh,nick}/[001-201].JPG # >like zzh/001.JPG
循环(引用)下载

$curl -o #2_#1.jpg http://cgi2.tky.3web.ne.jp/~{zzh,nick}/[001-201].JPG # like >001_zzh.jpg
断点续传

$curl -c -O http://cgi2.tky.3wb.ne.jp/~zzh/screen1.JPG
分块下载

$curl -r 0 - 10240 -o "zhao.part1" http://cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 &\

$curl -r 10241 - 20480 -o "zhao.part1" http://cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 &\

$curl -r 20481 - 40960 -o "zhao.part1" http://cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3 &\

$curl -r 40961 - -o "zhao.part1" http://cgi2.tky.3web.ne.jp/~zzh/zhao1.mp3

...

$cat zhao.part* > zhao.mp3
GET 上传

$curl http://www.yahoo.com/login.cgi?user=nickwolfe&password=12345
POST 上传

$curl -d "user=nickwolfe&password=12345" http://www.yahoo.com/login.cgi
POST 文件上传

$curl -F upload= $localfile -F $btn_name=$btn_value http://cgi2.tky.3web.ne.jp/~zzh/up_file.cgi

cURL是在多种协议上传输数据的命令行工具。cURL是支持FTP, HTTP, FTPS, TFTP, TELNET, IMAP, POP3等协议的客户端应用。cURL是一个不同于wget 的简单下载器,和其它的相比,它支持LDAP,POP3。cURL也很好的支持代理下载,暂停下载以及恢复下载。

安装cURL

在软件仓库或者已安装软件中,cURL在大部分发行版中默认是可用的。如果没有安装,运行apt或者yum从软件仓库中获取需要的安装包。

# apt­-get install curl (基于 APT 的系统)

# yum install curl (基于 YUM 的系统)

cURL的基本使用方法

# curl www.tecmint.com

图片描述

Curl 下载

图片描述

Curl 下载
4. w3m

W3m是GPL协议下发布的基于文本的web浏览器。W3m支持表格,帧,颜色,SSL连接以及内联图像。W3m以快速浏览而出名。

安装w3m

W3m在大部分Linux发行版中也是默认可用的。如果不可用的话可以用apt或者yum获取需要的安装包。

# apt­-get install w3m (基于 APT 的系统)

# yum install w3m (基于 YUM 的系统)

w3m的基本使用方法

# w3mwww.tecmint.com

图片描述

基于文本的web浏览器w3m
5. Elinks

Elinks是基于文本的免费浏览器,用于Unix及基于Unix的系统。Elinks支持 HTTP,HTTP Cookies以及支持浏览Perl和Ruby脚本(LCTT 译注:应该是指 CGI)。也很好的支持选项卡浏览。最棒的是它支持鼠标、彩色以及支持一系列的协议,例如HTTP, FTP, SMB, Ipv4 和 Ipv6。

安装Elinks

Elinks在大部分Linux发行版上是默认可用的。如果不是的话,可以通过apt或者yum安装。

# apt­-get install elinks (基于 APT 的系统)

# yum install elinks (基于 YUM 的系统)

Elinks的基本使用方法

# elinks www.tecmint.com

图片描述
Elinks命令行浏览互联网

就是这些了。有你们喜欢读的有趣的文章,我会再次来到这里。到那时尽请关注并保持和Tecmint的联系,别忘了在评论部分给我们你的宝贵的反馈。

______________________________________________________________________

Linux 抓取网页方式(curl+wget)
标签: linux服务器windows百度html网络协议
2012-07-12 14:29 1079人阅读 评论(0) 收藏 举报
分类:
Linux(27)

Linux抓取网页,简单方法是直接通过 curl 或 wget 两种命令。

curl 和 wget 命令,目前已经支持Linux和Windows平台,后续将介绍。

curl 和 wget支持协议

curl 支持 http,https,ftp,ftps,scp,telnet等网络协议,详见手册 man curl
wget支持 http,https,ftp网络协议,详见手册man wget

curl 和 wget下载安装
1、Ubuntu平台

wget 命令安装: sudo apt-get install wget (普通用户登录,需输入密码; root账户登录,无需输入密码)
curl 命令安装: sudo apt-get install curl (同 wget)

2、Windows平台

wget 下载地址:wget for Windows
curl 下载地址:curl Download

wget 和 curl 打包下载地址:Windows平台下的wget和curl工具包


Windows平台下,curl下载解压后,直接是curl.exe格式,拷贝到系统命令目录下 C:\Windows\System32 即可

Windows平台下,wget下载解压后,是wget-1.11.4-1-setup.exe格式,需要安装;安装后,在环境变量 - 系统变量 - Path 中添加其安装目录即可


curl 和 wget抓取实例

抓取网页,主要有url 网址和proxy代理两种方式,下面以抓取“百度”首页为例,分别介绍


1、 url 网址方式抓取

(1)curl下载百度首页内容,保存在baidu_html文件中

curl http://www.baidu.com/ -o baidu_html


(2)wget下载百度首页内容,保存在baidu_html文件中

wget http://www.baidu.com/ -O baidu_html2


有的时候,由于网速/数据丢包/服务器宕机/等原因,导致暂时无法成功下载网页

这时,可能就需要多次尝试发送连接,请求服务器的响应;如果多次仍无响应,则可以确认服务器出问题了

(1)curl多次尝试连接

curl --retry 10 --retry-delay 60 --retry-max-time 60 http://www.baidu.com/ -o baidu_html

注: --retry表示重试次数; --retry-delay表示两次重试之间的时间间隔(秒为单位); --retry-max-time表示在此最大时间内只容许重试一次(一般与--retry-delay相同)


(2)wget多次尝试连接

wget -t 10 -w 60 -T 30 http://www.baidu.com/ -O baidu_html2

注:-t(--tries)表示重试次数; -w表示两次重试之间的时间间隔(秒为单位); -T表示连接超时时间,如果超时则连接不成功,继续尝试下一次连接


附: curl 判断服务器是否响应,还可以通过一段时间内下载获取的字节量来间接判断,命令格式如下:

curl -y 60 -Y 1 -m 60 http://www.baidu.com/ -o baidu_html

注:-y表示测试网速的时间; -Y表示-y这段时间下载的字节量(byte为单位); -m表示容许请求连接的最大时间,超过则连接自动断掉放弃连接


2、 proxy代理方式抓取

proxy代理下载,是通过连接一台中间服务器间接下载url网页的过程,不是url直接连接网站服务器下载

两个著名的免费代理网站:

freeproxylists.net(全球数十个国家的免费代理,每日都更新)

xroxy.com(通过设置端口类型、代理类型、国家名称进行筛选)

在freeproxylists.net网站,选择一台中国的免费代理服务器为例,来介绍proxy代理抓取网页:

218.107.21.252:8080(ip为218.107.21.252;port为8080,中间以冒号“:”隔开,组成一个套接字)


(1)curl 通过代理抓取百度首页

curl -x 218.107.21.252:8080 -o aaaaa http://www.baidu.com(port 常见有80,8080,8086,8888,3128等,默认为80)

注:-x表示代理服务器(ip:port),即curl先连接到代理服务器218.107.21.252:8080,然后再通过218.107.21.252:8080下载百度首页,最后218.107.21.252:8080把下载的百度首页传给curl至本地(curl不是直接连接百度服务器下载首页的,而是通过一个中介代理来完成)


(2)wget 通过代理抓取百度首页

wget通过代理下载,跟curl不太一样,需要首先设置代理服务器的http_proxy=ip:port

以ubuntu为例,在当前用户目录(cd ~),新建一个wget配置文件(.wgetrc),输入代理配置:

http_proxy=218.107.21.252:8080

然后再输入wget抓取网页的命令:

wget http://www.baidu.com -O baidu_html2


代理下载截图:



======================

抓取的百度首页数据(截图):



其它命令参数用法,同url网址方式,在此不再赘述

ftp协议、迭代子目录等更多的curl 和 wget用法,可以man查看帮助手册


知识拓展:

在国内,由于某种原因一般难以直接访问国外某些敏感网站,需要通过 VPN 或 代理服务器才能访问

如果校园网和教育网有IPv6,则可以通过sixxs.org免费代理访问facebook、twitter、六维空间等网站


其实,除了VPN 和 IPv6+sixxs.org代理方式外,普通用户还是有其它途径访问到国外网站

下面介绍两个著名的免费代理网站:

freeproxylists.net(全球数十个国家的免费代理,每日都更新)

xroxy.com(通过设置端口类型、代理类型、国家名称进行筛选)


curl 项目实例

使用curl + freeproxylists.net免费代理,实现了全球12国家google play游戏排名的网页抓取以及趋势图查询(抓取网页模块全部使用Shell编写,核心代码约1000行)


LAMP
文档导航