8 curl

news/2024/7/19 12:15:27 标签: 爬虫

该命令用来爬取web页面,也不能说是爬取,至少从目前看,它并没有达到爬虫的全部能力。

0000 0000

                       

什么参数都不使用时,可以看到它就是单纯的打印了页面的代码出来。

 

0000 0001

如果想把网页内容拉下来存在某个文件中方便后续处理,则使用-o参数:

 

可以看到,终端将不再显示源码内容,而是显示连接过程的信息,同时网页的内容被保存到了index.html文件中,类似于爬虫这里倒是。

0000 0010

上面使用-o选项的一个问题是,你需要指定一个保存的文件名称,但是并不是一直有这样的机会,即我在连续爬取过程中可能并不知道下一个链接中的文件名,如果一直指定的话,会难以区分,此时可以使用-O选项,它会使用爬取的那个网页的名称作为本地文件名保存文件,但是这样的网页其名称必须是存在的,可以看下面的两个对比:

 

可以看到,在第一个中,由于文件名称是545609.html,因此它最终以该文件名保存该文件,而在后者中,根域名当然没有文件名了,因此报错。

0000 0011

类似于爬虫中可以指定代理一样,curl也支持使用代理,使用-x参数,手头没有代理可以,就不写了,基本格式如下:

curl -x 代理IP:端口号 url

 

0000 0100

如果碰到cookie,可以保存cookie,使用-D选项:

 

 

可以看到,cookie文件有保存,虽然其实不需要cookie;

 

0000 0101

保存了cookie当然可以在下次访问时直接使用,传入-b参数:

 

 

0000 0110

也可以伪造浏览器,使用-A选项:

curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" http://www.baidu.com

 

0000 0111

这个可以分块下载,使用-r参数(居然不是-b)

直接参考网上的代码吧:

curl -r  0 - 10240  -o  "zhao.part1"  http://www.jquerycn.cn/~zzh/zhao1.mp3 &\ 

curl -r 10241 - 20480  -o  "zhao.part1"  http://www.jquerycn.cn/~zzh/zhao1.mp3 &\ 

curl -r 20481 - 40960  -o  "zhao.part1"  http://www.jquerycn.cn/~zzh/zhao1.mp3 &\ 

curl -r 40961 - -o  "zhao.part1"  http://www.jquerycn.cn/~zzh/zhao1.mp3 

 

cat zhao.part* > zhao.mp3

 

上面最后把内容合并到了一起。

 

0000 1000

想使用get?直接在url中传吧,反正get上去也是这样的:

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

 

0000 1001

为了使用post,需要-d参数:

curl -d "user=nickwolfe&password=12345" http://www.yahoo.com/login.cgi

 

0000 1010

当需要传附件时使用-F,而且可以传几个:

curl -F upload= $localfile  -F $btn_name=$btn_value http://www.jquerycn.cn/~zzh/up_file.cgi

转载于:https://www.cnblogs.com/world-for-gold/p/9947667.html


http://www.niftyadmin.cn/n/553936.html

相关文章

ES6解析(一)ES6概念和新的声明方式

ES6解析(一)ES6概念和新的声明方式ES6的概念ES6的更新内容const 声明常量let 声明变量ES6的概念 ES6指的是ECMA为JavaScript制定的第6个标准版本。自2015年6月开始,每年的6月份会发布一个ES6的新版本,用来完善制定的标准&#xf…

172.纯 CSS 实现无限嵌套动画

效果 (源码网盘地址在最后) 源码 index.html <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport…

python+selenium自动化1

---恢复内容开始--- Selenium自动化测试工具&#xff0c;主要是用于web端的自动化测试&#xff0c;但它的功能并不局限于此&#xff0c;它还支持所有给予web的管理任务自动化。这里安装selenium很简单&#xff0c;只需要使用命令&#xff1a; python3 -m pip install selenium …

ES6解析(二)解构赋值

ES6解析&#xff08;二&#xff09;解构赋值概念数组的解构赋值对象的解构赋值概念 ES6允许按照一定的模式从数组和对象中提取值来赋予定义的变量 数组的解构赋值 按照变量定义的位置提取数组中对应下标的值。只要等号两边的模式相同&#xff0c;左边的变量就会被赋予对应的值…

04.functionName方法

使用方便有用的方法&#xff0c;以减少代码行数&#xff0c;提高我们的工作效率&#xff0c;增加我们的摸鱼时间。 functionName 方法 功能&#xff1a;打印函数的名称。 实现思路&#xff1a; 使用console.debug()和所传递函数的name属性将函数的名称打印到到控制台。返回…

SQL中NOT EXISTS...[EXCEPT]的妙用

title: ‘SQL中NOT EXISTS…[EXCEPT]的妙用’ date: 2018-11-13 16:15:30 tags: SQL categories: 数据库、SQL toc: true 这是基于github的个人博客&#xff1a;Josonlee’s Blog EXISTS子查询可以理解为存在&#xff0c;但也不能死扣字眼&#xff0c;多用在where子句中用来删选…

05.either 方法

either 方法 功能&#xff1a;检查给定的一组参数是否至少有一个函数返回true。 有点绕&#xff0c;解释一下&#xff0c;假设我们有两个变量 a 和 b&#xff0c;值都为 boolean。 我们想要的结果是a和b只要有一个变量为 true&#xff0c;就返回 true。 我们一般就这么写: …

简单实现javascript函数防抖

简单实现javascript函数防抖 首先我们需要先了解下函数防抖的概念和实现意义 什么是防抖&#xff1f; 防抖指的是&#xff1a;防止用户在短时间内&#xff0c;大量&#xff0c;高频的重复触发事件&#xff0c;发送大量请求&#xff0c;影响用户体验&#xff0c;给服务器带来负…