码迷,mamicode.com
首页 > 编程语言 > 详细

python请求服务器时如何隐藏User-Agent

时间:2016-02-01 22:24:51      阅读:281      评论:0      收藏:0      [点我收藏+]

标签:

本文结合上一篇文章“python利用有道翻译实现“语言翻译器”的功能”的实现代码,对其进行加工,实现请求服务器时隐藏User-Agent。

python实现隐藏User-Agent的一般做法有两种:

(1)在request对象生成之前(下面例子中的req),通过一个字典类型的head,将其作为参数传入urllib.request.Request(url, data, head)中;

(2)在request对象生成之后(下面例子中的req),通过add_header()方法来实现。

import urllib.request
import urllib.parse
import json

while True:
    content = input(请输入需要翻译的内容(退出输入Q):)
    if content == Q:
        break
    else:
        url = http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=http://www.youdao.com/

        #head = {}
        #head[‘User-Agent‘] = ‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36‘
        
        data = {}
        data[type] = AUTO
        data[i] = content
        data[doctype] = json
        data[xmlVersion] = 1.8
        data[keyfrom] = fanyi.web
        data[ue] = UTF-8
        data[action] = FY_BY_CLICKBUTTON
        data[typoResult] = true
        data = urllib.parse.urlencode(data).encode(utf-8)
        
        #req = urllib.request.Request(url, data, head)
        req = urllib.request.Request(url, data)
        req.add_header(User-Agent, Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.31)
        
        response = urllib.request.urlopen(req)
        html = response.read().decode(utf-8)
        target = json.loads(html)
        print(翻译的结果:%s % target[translateResult][0][0][tgt])
>>> 
请输入需要翻译的内容(退出输入Q):查尔顿
翻译的结果:charlton
请输入需要翻译的内容(退出输入Q):Q
>>> req.headers
{User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.31}
>>> 

我们可以通过req.headers来检验User-Agent是否隐藏成功!

注:上述被注释的代码行是第一种方法的实现。

python请求服务器时如何隐藏User-Agent

标签:

原文地址:http://www.cnblogs.com/paomaliuju/p/5176371.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!