由于爬虫过于频繁访问某一个网站而被禁ip,只因为贪恋一时爽快而忘记了使用代理,这大概是大多数爬虫初学者遇到的问题吧。但是有一些网站不只是爬虫需要访问,人也是需要访问的。这时候就需要使用代理服务器来访问了。然而我现在手头没有一个可用的代理池,却有一台云服务器。决定在云服务器上搭建代理。

用Golang写起来非常方便,一个字:爽。

package main

import (
"net/http"
log "github.com/Sirupsen/logrus"
"io/ioutil"
"io"
"os"
) func Handler(w http.ResponseWriter, r *http.Request) {
res, err := http.DefaultClient.Do(r)
defer res.Body.Close()
if err != nil { log.Panicln(err.Error()) }
for k, v := range res.Header {
for _, vv := range v {
w.Header().Add(k, vv)
}
}
for _, c := range res.Cookies() {
w.Header().Add("Set-Cookie", c.Raw)
}
w.WriteHeader(res.StatusCode)
result, err := ioutil.ReadAll(res.Body)
if err != nil && err != io.EOF { log.Panicln(err.Error()) }
w.Write(result)
} func main() {
http.HandleFunc("/", Handler)
log.Infoln("Starting agent: ", os.Args[1])
http.ListenAndServe(":"+os.Args[1], nil)
}

编译后上传到服务器上运行,同时在浏览器上设置制定网站使用代理。我使用的是chrome浏览器,所以可以用插件switchysharp里设置规则。

[Golang]使用自建代理访问指定网站的更多相关文章

  1. IIS+域组策略+hosts:禁止访问指定网站

    一.简介 禁止访问网站可以通过多种方式实现,在网络设备上实现大概是性能最好的方式.本文在域服务器上实现该功能,优点是配置简单.可自定义跳转页面,缺点也很明显,遇到熟悉操作系统的用户,修改hosts文件 ...

  2. nginx或者squid正向代理实现受限网站的访问

    项目背景:公司商务同事需要操作合作方的后台,但是这个后台做了限制(安全考虑只对指定IP放行),刚好公司是adsl拨号,经常更换IP 需求:让商务同事不要经常给IP到合作方去添加白名单 于是想到了做正向 ...

  3. HttpWebRequest代理访问网站

    private void button1_Click(object sender, EventArgs e) { string str ="http://www.7y8.com/V/ip.a ...

  4. burp 代理的时候无法访问https网站

    今天在使用burp的时候发现不能访问https网站了,Google下面还出现这个 ERR_SSL_VERSION_OR_CIPHER_MISMATCH,于是到官网下载了一个最新的burp就可以访问了, ...

  5. 使用 docker-compose 部署 golang 的 Athens 私有代理

    go中私有代理搭建 前言 为什么选择 athens 使用 docker-compose 部署 配置私有仓库的认证信息 配置下载模式 部署 使用秘钥的方式认证私有仓库 1.配置秘钥 2.配置 HTTP ...

  6. PHP和Golang使用Thrift1和Thrift2访问Hbase0.96.2(ubuntu12.04)

    目录: 一.Thrift1和Thrift2的简要介绍 1) 写在前面 2) Thrift1和Thrift2的区别  二.Thrift0.9.2的安装 1) 安装依赖插件 2) Thrift0.9.2的 ...

  7. AFNetworking 原作者都无法解决的问题: 如何使用ip直接访问https网站?

    背景 最近App似乎有报异常是DNS无法解析,尝试解决此问题.搜集到的资料很少,甚至连AFN原作者都判定这可能是一个无解的问题,参见: https://github.com/AFNetworking/ ...

  8. Java程序通过代理访问网络

    问题背景 最近工作上有开发爬虫的任务,对目标网站数据进行抓取,由于大部分网站都在国外,无法直接访问,需要通过代理才能登录.爬虫部署的服务器在香港,所以爬虫部署到服务器后,是可以访问目标网站的,但本地开 ...

  9. nginx正向代理访问百度地图API

    正向代理的概念 正向代理,也就是传说中的代理,他的工作原理就像一个跳板,简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器这个代理服务器呢,他能访问那个我不能访问的网站于是我先连上代 ...

随机推荐

  1. Linux命令 + Shell

    1. 之前利用Ubuntu14.10的镜像安装了个虚拟机,本以为自己在windows上的就是管理员的权限,就理所当然的认为虚拟的Linux系统也是root权限.而且虽然@符号前的的标识不是root,但 ...

  2. 录制iphone手机视频

    1: 升级自己的手机到ios8, 同时mac os也要升级到10.10 2: 用usb数据线将手机连上电脑. 3: 打开quicktime player创建新movie 4: 选择手机作为音频.视频源 ...

  3. Yarn的服务库和事件库

    对于生命周期较长的对象,YARN采用了基于服务对象管理模型对其进行管理. 该模型有一下特点: 每个被服务化的对象都分为4个状态 任何服务状态变化都可以触发另外一些动作 可以通过组合方式对任意服务进行组 ...

  4. Google NACL 简介

    Back to README Getting Started This page tells you how to install Native Client and run demos, both ...

  5. 链表(c语言实现)--------------小练习

    #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_SIZE 100 #d ...

  6. 使用时间戳引入css、js文件

    前言 最近在一家创业公司实习,主要负责新版官网和商家平台管理系统的前端开发和维护,每次测试都要上传文件到ftp服务器端测试,初期由于更新修改比较频繁,每次都是直接上传覆盖css.js.php文件,链接 ...

  7. 无限互联IOS电影项目视频笔记

    下面是该iOS项目视频教程的内容大纲: 观看指南 (1)项目为第一阶段内容 (2)需要熟练掌握OC语言 (3)UI部分需要学习到第十节课 (4)项目适合刚入门的iOS开发者 1.第一天 (1)iOS ...

  8. Dev 统计GridControl界面上当前选中的一行的值

    private void gridView1_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChang ...

  9. poj 2480 Longge's problem 积性函数

    思路:首先给出几个结论: 1.gcd(a,b)是积性函数: 2.积性函数的和仍然是积性函数: 3.phi(a^b)=a^b-a^(b-1); 记 f(n)=∑gcd(i,n),n=p1^e1*p2^e ...

  10. 【XJOI-NOIP16提高模拟训练9】题解。

    http://www.hzxjhs.com:83/contest/55 说实话这次比赛真的很水..然而我只拿了140分,面壁反思. 第一题: 发现数位和sum最大就是9*18,k最大1000,那么su ...