c 抓取网页数据(-Dcookied.txt执行后cookie信息就被存到了)
优采云 发布时间: 2022-04-18 02:30c 抓取网页数据(-Dcookied.txt执行后cookie信息就被存到了)
# curl -D cookied.txt
cookie信息在执行后会保存在cookied.txt中
注意:-c(小写)生成的cookie与-D中的cookie不同。
5.3:使用cookies
很多网站会监控你的cookie信息来判断你是否按照规则访问他们的网站,所以我们需要使用保存的cookie信息。内置选项:-b
# curl -b cookiec.txt
6、仿浏览器
有些网站 需要特定的浏览器才能访问它们,而有些则需要特定的版本。 curl 内置选项:-A 允许我们指定浏览器访问 网站
# curl -A "Mozilla/4.0(兼容;MSIE 8.0;Windows NT 5.0)"
这样服务器会认为是用IE访问的8.0
7、假引用(热链接)
很多服务器都会检查http访问的referer来控制访问。比如先访问首页,再访问首页上的邮箱页面,这里访问邮箱的referer地址就是成功访问首页后的页面地址。是小偷
curl中的内置选项:-e允许我们设置referer
# curl -e ""
这会让服务器认为你来自点击一个链接
8、下载文件
8.1:使用curl下载文件。
#使用内置选项:-o(小写)
# curl -o dodo1.jpg http:
#使用内置选项:-O(大写)
# curl -O
这将使用服务器上的名称将文件保存在本地
8.2:循环下载
有时下载的图片可能与名字的前半部分相同,但最后的尾名不同
# curl -O [1-5].JPG
这将保存所有 dodo1、dodo2、dodo3、dodo4 和 dodo5
8.3:下载重命名
# curl -O {hello,bb}/dodo[1-5].JPG
因为下载的hello和bb中的文件名分别是dodo1、dodo2、dodo3、dodo4、dodo5。所以第二次下载会覆盖第一次下载,所以需要重命名文件。
# curl -o #1_#2.JPG {你好,bb}/dodo[1-5].JPG
这样,在hello/dodo1.JPG中下载的文件会变成hello_dodo1.JPG等其他文件,从而有效避免文件被覆盖
8.4:分块下载
有时候下载的东西会比较大,这个时候我们可以分段下载。使用内置选项:-r
# curl -r 0-100 -o dodo1_part1.JPG # curl -r 100-200 -o dodo1_part2.JPG # curl -r 200- -o dodo1_part3.JPG # cat dodo1_part* > dodo1.JPG
这将允许您查看渡渡鸟的内容1.JPG
8.5:通过ftp下载文件
curl可以通过ftp下载文件,curl提供了两种从ftp下载的语法
# curl -O -u 用户名:密码 ftp:///dodo1.JPG# curl -O ftp://用户名:密码@
8.6:显示下载进度条
# curl -# -O
8.7:不会显示下载进度信息
# curl -s -O
9、断点续传
在 Windows 中,我们可以使用迅雷等软件从断点恢复上传。 curl也可以通过内置选项达到同样的效果:-C
如果你在下载dodo的时候突然断线1.JPG,可以使用以下方法恢复上传
# curl -C -O
10、上传文件
curl 不仅可以下载文件,还可以上传文件。通过内置选项实现:-T
# curl -T dodo1.JPG -u 用户名:密码 ftp:///img/
这会上传文件dodo1.JPG
到 ftp 服务器
11、显示抓取错误
# curl -f
其他参数(此处转载):
-a/--append 上传文件时追加到目标文件--anyauth 可以使用“any”认证方式--basic 使用HTTP 基本认证-B/--use-ascii 使用ASCII 文本传输-d/- data HTTP POST 发送数据 --data-ascii 以 ascii 格式发布数据 --data-binary 以二进制格式发布数据 --negotiate 使用 HTTP 身份验证 --digest 使用数字身份验证 --disable-eprt 禁用使用 EPRT 或LPRT --disable-epsv 禁用 EPSV --egd-file 为随机数据设置 EGD 套接字路径 (SSL) --tcp-nodelay 使用 TCP_NODELAY 选项 -E/--cert 客户端证书文件和密码 (SSL) --cert-type证书文件类型 (DER/PEM/ENG) (SSL) --key 私钥文件名 (SSL) --key-type 私钥文件类型 (DER/PEM/ENG) (SSL) --pass 私钥密码 (SSL) )--引擎加密引擎使用(SSL)。 “--engine list”for list--cacert CA 证书 (SSL)--capath CA 目的(使用 c_rehash 生成)以验证对等方 (SSL)--ciphers SSL 密码--压缩需要压缩返回(使用 deflate或 gzip)--connect-timeout 设置最大请求时间--create-dirs 创建本地目录的目录层次结构--crlf upload 是将LF 转换为CRLF --ftp-create-dirs 如果远程目录不存在, 创建远程目录 --ftp-meth od [multicwd/nocwd/singlecwd] 控制 CWD 的使用 --ftp-pasv 使用 PASV/EPSV 代替端口 --ftp-skip-pasv-ip 使用 PASV 时,忽略IP 地址 --ftp-ssl 尝试使用 SSL/TLS 进行 ftp 数据传输 --ftp-ssl-reqd 需要 SSL/TLS 进行 ftp 数据传输 -F/--form emulate http form submit data -form-string emulate http form提交数据 -g/--globoff 禁用 URL 序列和范围使用 {} 和 []-G/--get 以 get 形式发送数据 -h/--help help -H/--header 传递给服务器 --ignore-content-length 冷忽略的 HTTP 头 -i/--include 输出时收录协议头 -I/--head 仅显示文档信息 -j/--junk-session-cookies 读取文件时忽略会话 cookie --interface 使用指定网络接口/地址 --krb4 使用指定安全级别的 krb4 -k/--insecure 允许没有证书的 SSL 站点 -K/--config 指定配置文件读取 -l/--list-only list ftp 目录中的文件名-- limit-rate 设置传输速度 --local-port 强制使用本地端口号 -m/--max-time 设置最大传输时间 --max-redirs 设置最大读取目录数 --max - filesize 设置要下载的最大文件数 -M/--manual 显示完整手册 -n/--netrc 从 netrc 文件中读取用户名和密码 --netrc-可选 使用 .netrc 或 URL 覆盖 -n--ntlm 使用 HTTP NTLM身份验证 -N/--no-buffer 禁用缓冲输出 -p/--proxytunnel 使用 HTTP 代理 --proxy-anyauth 选择代理身份验证方法 --proxy-basic us e 代理上的基本认证 --proxy-digest 在代理上使用数字认证 --proxy-ntlm 在代理上使用ntlm认证 -P/--ftp-port 使用端口地址而不是PASV -Q/--文件传输前引用,发送命令到服务器 --range-file read (SSL) 随机文件 -R/--remote-time 本地生成文件时,保持远程文件时间--retry 传输有问题时的重试次数 --retry-delay传输有问题时,设置重试间隔时间--retry-max-time 设置传输有问题时的最大重试时间 -S/--show-error show error --socks4 proxy given host and port with socks4 --socks5 使用 socks5 代理给定主机和端口 -t/ --telnet-option Telnet 选项设置 --trace 调试指定文件 --trace-ascii 类似 --trace 但没有十六进制输出 --trace-time when tracking/详细输出,添加时间戳 --url Spet URL 以使用 -U/--proxy-user 设置代理用户名和密码 -V/--version 显示版本信息 -X/--requ est 指定什么命令 -y/--speed-time 放弃限速的时间。
默认是30-Y/--speed-limit 停止传输限速,speed time 'seconds-z/--time-cond 传输时间设置-0/--http1.0 使用HTTP < @1.0-1/--tlsv1 使用 TLSv1 (SSL) -2/--sslv2 使用 SSLv2 (SSL) -3/--sslv3 使用 SSLv3 (SSL) --3p-quote like -Qforthe source URLfor 3rd party transfer--3p-url 使用url进行第三方传输--3p-user使用用户名和密码进行第三方传输-4/--ipv4使用IP4-6/--ipv6使用IP6