玩儿虫那些事——使用curl

fonxian fonxian     2022-10-10     727

关键词:

目录

  • 一、爬一个简单的网站
  • 二、模拟登录新浪
  • 三、各种请求的发送
  • 四、使用curl
  • 五、模拟登录QQ空间
  • 六、selenium的使用
  • 七、phantomjs的使用
  • 八、开源框架webmagic
  • 九、开源框架scrapy
  • 十、多线程爬取与反爬策略
  • 十一、加密与解密
  • 十二、APP数据抓取
  • 十三、分布式爬虫

1、 发送一个简单的请求,获取页面,并查看请求头

curl https://www.baidu.com

curl https://www.baidu.com --head

2、 下载某一资源

curl https://www.baidu.com/1.png

3、将请求到的文件输出到某个文件中

curl https://www.baidu.com -o baidu.txt

4、 请求需要验证 HTTP authentication

curl -u username:password https://xxxx.com

5、 在配置中进行批量操作

curl -K cmdline.txt https://baidu.com

cmdline.txt

--location

--head

(6) 分析请求和响应,并将响应结果保存


curl -v https://baidu.com -o response.txt

执行结果如下


* Rebuilt URL to: http://www.baidu.com/
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 119.75.213.61...
* TCP_NODELAY set
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Connected to www.baidu.com (119.75.213.61) port 80 (#0)
> GET / HTTP/1.1
> Host: www.baidu.com
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: bfe/1.0.8.18
< Date: Thu, 18 Jan 2018 17:17:36 GMT
< Content-Type: text/html
< Content-Length: 2381
< Last-Modified: Mon, 23 Jan 2017 13:27:36 GMT
< Connection: Keep-Alive
< ETag: "588604c8-94d"
< Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
< Pragma: no-cache
< Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
< Accept-Ranges: bytes
<
{ [2381 bytes data]
100  2381  100  2381    0     0   3770      0 --:--:-- --:--:-- --:--:--  3767
* Connection #0 to host www.baidu.com left intact

7、使用post发送数据

curl -d ‘name=amdini&passwd=123‘ http://example.com

curl -d ‘{json}‘  -H  ‘Content-Type:application/json‘ http://example.com

8、对发送数据进行编码

curl --data-urlencode "name=John Doe(Junior)" http://example.com

请求的效果

name=John%20Doe%20%28Junior%29

9、发送multipart类型的数据

请求前的格式可能是这样的

<form action="submit.cgi" method="post" enctype="multipart/form-data">
Name: <input type="text" name="person"><br>
File: <input type="file" name="secret"><br>
<input type="submit" value="Submit">
</form>

请求方法

可以使用-F--form

  curl -F person=anonymous -F [email protected] http://example.com/submit.cgi

请求的效果

--------------------------d74496d66958873e
Content-Disposition: form-data; name="person"
anonymous
--------------------------d74496d66958873e
Content-Disposition: form-data; name="secret"; filename="file.txt"
Content-Type: text/plain
contents of the file
--------------------------d74496d66958873e

flink使用arthas在线诊断flink的那些事(代码片段)

1.概述转载:使用arthas在线诊断flink的那些事最近在使用arthas诊断工具,诊断java服务的一些问题,突然想到能不能使用arthas诊断flink的jobManager和taskManager呢?答案是可以的.采用javaagent,在flink启动jobmanager和taskManager的时候,注入我们... 查看详情

使用分享hive分区表那些事(代码片段)

一、静态分区1.创建静态分区格式:createtableemployees(namestring,salaryfloat,subordinatedarray<string>,deductionsmap<string,float>,addressstruct<street:string,city:string,state:string,zip:int>)parti 查看详情

异常的那些事(代码片段)

使用traceback获取详细的异常信息try:1/0exceptException,e:printe结果:integerdivisionormodulobyzero只知道是报了这个错,但是却不知道在哪个文件哪个函数哪一行报的错。 下面使用traceback模块importtracebacktry:1/0exceptException,e:traceback.print_exc(... 查看详情

注解的那些事|为什么要使用注解?(代码片段)

注解是JDK1.5引入的功能,相信不少开发者都使用过这个功能,但关于为什么要使用注解,你了解过多少呢?在JDK1.5之前,Java还没引入注解,这个时候如果我们要在Spring中声明一个Bean,我们只能通过XML配置的方式。publicclassDemoServ... 查看详情

php有关jwt(jsonwebtoken)的那些事

阅读目录阐述传统的session认证session缺点基于token的鉴权机制JWT的使用比单个API密钥有许多优点JWT的流程JWT结构headerplayloadsignature签名安装实例使用RS256(openssl)的示例带有密码短语的示例JWT实战使用axios+PHP实现登录认证准备源码... 查看详情

php有关jwt(jsonwebtoken)的那些事

阅读目录阐述传统的session认证session缺点基于token的鉴权机制JWT的使用比单个API密钥有许多优点JWT的流程JWT结构headerplayloadsignature签名安装实例使用RS256(openssl)的示例带有密码短语的示例JWT实战使用axios+PHP实现登录认证准备源码... 查看详情

面试那些事

今年的金三银四面试的人特别多,筛选的简历也很多,不知道是每年这个时间都这么多人,还是今年整体行业不太景气,主动或者被动出来的人多了些。来来回回面试也很多,看的简历多了也会发现一些简历问题,这里分享下。... 查看详情

使用elasticsearch7.10.2新版本,新手需要注意的那些事(代码片段)

使用Elasticsearch,新手需要注意的那些事全文搜索属于最常见的需求,开源的Elasticsearch(以下简称Elastic)是目前全文搜索引擎的首选。简称es,它可以快速地储存、搜索和分析海量数据。维基百科、StackOverflow、Github都采... 查看详情

mybatis那些事-拦截器(plugin+interceptor)

作者:yhjyumi的专栏 Mybatis的拦截器实现机制,使用的是JDK的InvocationHandler.当我们调用ParameterHandler,ResultSetHandler,StatementHandler,Executor的对象的时候,实际上使用的是Plugin这个代理类的对象,这个类实现了InvocationHandler接口.接下来我... 查看详情

http与https握手的那些事

转自:HTTP与HTTPS握手的那些事今天我总结了什么是HTTP三次握手,还有HTTPS握手的过程以及为什么HTTPS是安全的。前提在讲述这两个握手时候,有一些东西需要提前说明。HTTP与TCP/IP区别?TPC/IP协议是传输层协议,主要解决数据如何... 查看详情

reactjs和reactnative的那些事

介绍 1,ReactJs的目的是为了使前端的V层更具组件化,能更好的复用,它能够使用简单的html标签创建更多的自定义组件标签,内部绑定事件,同时可以让你从操作dom中解脱出来,只需要操作数据就会改变相应的dom。 2,Reac... 查看详情

关于mq那些事(代码片段)

我走过最长的路是你的套路女:二号男嘉宾,假如我们牵手成功后,你会买名牌包包给我吗?男:那你会听话吗?女:会听话。男:听话咱不买!那么消息队列MQ有什么套路呢?(这个话题转换生硬度连我自己都怕!)使用消息... 查看详情

vue——关于css过渡和动画那些事

1.单元素/组件的过渡  Vue提供了 transition 的封装组件,在下列情形中,可以给任何元素和组件添加进入/离开过渡条件渲染(使用 v-if)条件展示(使用 v-show)动态组件组件根节点实例:<style>.fade-enter,.fade-leave-to{o... 查看详情

js中数组那些事~

  今天闲的没事,看了一些关于数组的操作,好久木有用过,很多都已经忘记的差不多了,所以今天花了一个小时写了一些demo,准备备份一下方便以后使用~~~  下面是一些工作当中,经常用到的数组的方法,小伙伴可以自... 查看详情

关于在taro使用wx.parse那些事(代码片段)

  好久不见,好久没更新博客,最近工作也比较忙,今天在使用解决富文本的时候遇到两个bug,由于第一次使用wx.parse经验不足,走了很多弯路,今天特地把自己修复bug的感想分享一下,希望能帮助更多的小伙伴们,有错误的... 查看详情

谁说颜值与实力不能并存?3.14最美女神入驻techneo,邀你一起聊ai与区块链那些事

...能 这些热门领域,都是响当当的行家!2018,让我们玩儿点儿不一样的最美女神Party,What?搞事情?Partone女神抛出话题女神大咖会在TechNeo抛出话题话题1:深度学习在细分领域的应用实践与深度的技术探讨内容介绍:面对 查看详情

angularjs自定义那些事

angularJS在数据处理方面很优秀。使用angularJ给我感觉就像在写模板,然后对模板填入内容,只是这些内容不在是在html页面编写,而是以数据的方式添加进去,这个也大大提高了编写的效率。我们的业务逻辑都可以在controller里编... 查看详情

前端跨域的那些事

这一节,我们来讲一讲,前端跨域的那些事,主要分成这样的几部分来讲解,一、为什么要跨域?二、常见的几种跨域与使用场景  2.1JSONP跨域  2.2iframe跨域  2.3window.name跨域  2.4document.domain跨域  2.5cookie跨域  2.6po... 查看详情