1. 概述

curl也就是command line tool and library for transferring data with URLs的缩写,也就是一种通过URL传输数据的命令行工具和库。可以直接通过curl命令行工具进行url协议通迅的相关操作,也可以通过其libcurl库的接口,在自己的程序中进行相同的操作。其支持的协议非常全,而且提供了C的接口,所以很多库和软件都使用libcurl作为url数据传输的底层库。

2. 实例

libcurl库的使用还是很繁琐的,所有的操作都可以先用命令行工具curl验证一下。如果是从源代码编译的curl,那么两者都会编译。推荐先找到已经编译好的curl来使用,因为curl对于https的支持是需要ssl的,编译器来稍微有点麻烦。这里主要论述一下curl的使用。

2.1. 访问网页

curl最主要的功能就是访问网页了,不过因为是命令行窗口,所以访问的网页的源代码:

curl https://www.baidu.com

注意这里我访问的是https,当我访问http的时候获取的源代码有点问题,可能是现在很多网站对http的访问会迁移到https造成的。

2.2. 显示头信息

添加-i参数,就显示http response的头信息:

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

2.3. 保存网页

访问的网页可以通过-o参数保存下来:

curl https://www.baidu.com -o 1.html

2.4. 下载图片

使用同样的方法可以下载网络上的图片:

curl https://cn.bing.com/th?id=OHR.GrandsCausses_EN-CN3335882379_800x480.jpg -o 1.jpg



利用这个方法可以通过curl来下载网络上的一些资源。

2.5. 用户代理设置

用户代理设置也就是请求头的User-Agent,有的网站服务器会屏蔽一些不被允许的客户端去访问它,这个时候可以通过设置User-Agent来访问(提示不要做非法请求,恶意爬虫是违法的):

curl https://www.sina.com.cn --user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"

2.6. 代理设置

curl还可以设置通过代理来访问特定的服务器,比如说某些公司的内部网络。代理也包含了很多繁复的种类和知识,我这里只记录一种简单的无需账号密码的http代理,简单的通过-x或者--proxy设置地址及端口即可:

curl --proxy 127.0.0.1:1080 https://www.google.com --user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"

3. 参考

  1. curl网站开发指南
  2. 使用wget或curl时 error 403 forbidden
  3. Linux curl命令使用代理、以及代理种类介绍

curl使用小记(一)的更多相关文章

  1. curl php 小记

    /* 开发用到. */ https 需加入: curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查

  2. curl的head小记

    CURLINFO_HEADER_OUT,如果启用会在curl_getinfo里得到发送的头信息 CURLINFO_HEADER 如果启用,会在结果里返回回应的消息头信息

  3. Jenkins部署net core小记

    作为一个不熟悉linux命令的neter,在centos下玩Jenkins真的是一种折磨啊,但是痛并快乐着,最后还是把demo部署成功!写这篇文章是为了记录一下这次部署的流程,和心得体会. 网上很多资 ...

  4. 跨域、curl、snoopy、file_get_contents()

    定义:可以称为”信息采集/模拟登录”技术,可以实现对某个地址做请求,同时按照要求传递get或post参数. curl本身是php的一个扩展,同时也是一个利用URL语法规定来传输文件和数据的工具,支持很 ...

  5. Kong网关介绍与安装小记

    本文主要为kong安装小记,系统环境为centos 6.7                                本文转载请注明出处 —— xiaoEight 介绍 Kong 是在客户端和(微 ...

  6. JanusGraph 图数据库安装小记 ——以 JanusGraph 0.3.0 为例

    由于近期项目中有使用图数据的需求,经过对比,我们选择尝试使用 JanusGraph.本篇小记记录了我们安装 JanusGraph 以及需要一起集成的 Cassandra + Elasticsearch ...

  7. Java 文件句柄泄露问题解决小记(转)

    转:Java 文件句柄泄露问题解决小记 维护 WebIDE 免不了要管理很多的文件, 自从我们线上系统增加了资源回收功能,便一直受一个问题困扰:后台线程解绑目录时偶尔报错,看症状因为是某些文件被占用了 ...

  8. 在PowerShell中使用curl(Invoke-WebRequest)

    前言 习惯了windows的界面模式就很难转去命令行,甚至以命令行发家的git也涌现出各种界面tool.然而命令行真的会比界面快的多,如果你是一个码农. situation:接到需求分析bug,需要访 ...

  9. [原]Paste.deploy 与 WSGI, keystone 小记

    Paste.deploy 与 WSGI, keystone 小记 名词解释: Paste.deploy 是一个WSGI工具包,用于更方便的管理WSGI应用, 可以通过配置文件,将WSGI应用加载起来. ...

  10. php中实现的一个curl批处理的实例

    curl是利用URL语法在命令行方式下工作的开源文件传输工具 本文在php中实现了的一个curl批处理的实例. 代码如下: header("Content-Type:text/html;ch ...

随机推荐

  1. AI在人才测评领域的应用情况概述

    目录 收起 一.AI技术的通俗理解 二.AI在人才测评领域的应用情况概述 三.AI在构建人才标准上的应用 1.人才标准构建 2.人才画像 3.人岗智能匹配 四.AI在人才测评实施方面的应用 1.AI面 ...

  2. threading 专递类对象

    import threading class MyClass: def __init__(self, name): self.name = name def my_method(self): prin ...

  3. OSPF路由 与 ISIS路由 与路由学习对比

    转载请注明出处: 1.OSPF 路由学习规律 OSPF使用链路状态数据库(Link State Database)来存储网络拓扑信息.每个OSPF路由器通过交换链路状态更新(Link State Up ...

  4. 再见,Spring!你好,Solon!

    Solon 是什么框架? Java 生态级应用开发框架.从零开始构建,有自己的标准规范与开放生态(历时五年,具备全球第二级别的生态规模).与其他框架相比,解决了两个重要的痛点:启动慢,费内存. 解决痛 ...

  5. 【Java集合】单列集合Collection常用方法详解

    嗨~ 今天的你过得还好吗? 路途漫漫终有一归, 幸与不幸都有尽头. 在上篇文章中,我们简单介绍了下Java 集合家族中的成员,那么本篇文章,我们就来看看 Java在单列集合中,为我们提供的一些方法,以 ...

  6. vue本地能够访问图片,打包项目之后图片无法访问

    //template中 <img :src="boxHerf" /> //js let boxHerf = ref('/src/assets/images/contai ...

  7. JAVA多线程(2)——锁(对象锁和类锁)

    1.如下代码 1 public class TestSync1 implements Runnable { 2 Timer1 timer = new Timer1(); 3 public static ...

  8. 设置Eclipse自动补全变量名

    具体配置步骤如下: Windows -> Preferences -> Java -> Editor -> Content Assist 选中 Enable auto-acti ...

  9. STM32CUBEIDE中 Debug 和 Release 的作用/区别/使用场景

    基本主流IDE都有该功能选项例如Keil MDK, IAR, Eclipse, VS等, 这里使用STM32CUBEIDE来举例 创建STM32CUBEIDE工程后默认有2个目标选项 Debug / ...

  10. Util应用框架基础(六) - 日志记录(四) - 写入 Exceptionless

    本文是Util应用框架日志记录的第四篇,介绍安装和写入 Exceptionless 日志系统的配置方法. Exceptionless 是一个日志管理系统,使用 Asp.Net Core 开发,比 Se ...