1获取整页页面

#python3
import urllib.requestresponse=urllib.request.urlopen('http://www.baidu.com')
data=response.read()
html=data.decode("utf8")
print(type(html))
with open("d:/python/pachong/pc2.html",'w',encoding='utf8') as f:f.write(html)
#python2版
import io
import urllib
import urllib2
response=urllib2.urlopen('http://www.baidu.com')
data=response.read()
html=data.decode('utf8')
with io.open('d:/python/pachong/ub1.html','w',encoding='utf8') as f:f.write(html)

由上可见,python3里的urllib.request即为python2里的urllib2

2 获取某个图片

#python3版
import urllib.request
url="https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png"
response=urllib.request.urlopen(url)
#创建请求对象
#request=urllib.request.Request(url)
#response=urllib.request.urlopen(request)
data=response.read()
#将数据存入到图片文件中
with open("d:/python/pachong/baidu.png','wb') as f:f.write(data)
#python2版
import urllib
import urllib2
import io
url="https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png"
#response=urllib.urlopen(url)request=urllib2.Request(url)
response=urllib2.urlopen(request)
data=response.read()
with io.open('d:/python/pachong/ub2_1.png','wb') as f:f.write(data)
  1. geturl()返回的是一个url的字符串;
  2. info()返回的是一些meta标记的元信息,包括一些服务器的信息;
  3. getcode()返回的是HTTP的状态码,如果返回200表示请求成功
    查看返回相关信息
import urllib.request
#获取请求地址
url="http://www.sohu.com"
#发送请求,获取相应
response = urllib.request.urlopen(url)
#获取相应的数据
#获取请求的数据url
print(response.geturl())
#服务器相应的数据信息
print(response.info())
#获取相应的返回码
print(response.getcode())

3 获取post请求数据

  1. 使用baidu的api完成汉译英功能
import urllib.request
#baidu翻译的地址
url='http://fanyi.baidu.com/v2transapi'
param={
"from":"zh",
"to":"en",
"query":"中国",
"transtype":"translang",
"simple_means_flag":"3"
}
#将参数转码
param=urllib.parse.urlencode(param)
#将参数转换为bytes类型
param=bytes(param,encoding='utf8')
#发送请求
response=urllib.request.urlopen(url,data=param)
#读取返回的数据
data=response.read()
#将bytes类型转换为str类型
data=str(data,encoding='utf8')
print(data)


2. 使用json完成校验

#使用baidu的api完成汉译英功能
import urllib.request
import urllib.parse
import jsontransData=input("请您输入要翻译的内容(中文)")
#baidu翻译的地址
url='http://fanyi.baidu.com/v2transapi'
param={
"from":"zh",
"to":"en",
"query":transData,
"transtype":"translang",
"simple_means_flag":"3"
}
#将参数转码
param=urllib.parse.urlencode(param)
#将参数转换为bytes类型
param=bytes(param,encoding='utf8')
#发送请求
response=urllib.request.urlopen(url,data=param)
#读取返回的数据
data=response.read()
#将bytes类型转换为str类型
data=str(data,encoding='utf8')
#print(data)#将json的字符串转为字典
result=json.loads(data)#获取需求的数据
dst=result["trans_result"]["data"][0]["dst"]
print("翻译后的结果:"+dst)

4 伪装身份

  1. 方法一
import urllib.request#请求的url
url="http://www.csdn.net"#请求头数据
headers={"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0"
}#创建请求对象
request=urllib.request.Request(url)
#发送请求
response=urllib.request.urlopen(request)
#读取数据
data=response.read().decode('utf8')
#print(data)
with open('d:/python/pachong/weizhuang1.html','w',encoding='utf8') as f:f.write(data)

从结果可以看出,Provisional headers are shown,伪装仍然可以被发现

  1. 方法二
import urllib.request#获取请求url
url="http://www.csdn.net"
#创建请求对象
request=urllib.request.Request(url)
#请求对象添加请求头文件
request.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0")#发送请求
response=urllib.request.urlopen(request)
#读取数据
data=response.read().decode('utf8')
with open('d:/python/pachong/weizhuang2.html','w',encoding='utf8') as f:f.write(data)
  1. IP代理的使用
import urllib.request# 获取网络请求地址
url="http://ip.chinaz.com"
#创建handler
proxyHandler=urllib.request.ProxyHandler({"https":"60.205.227.57:63336"})
#创建opener
opener=urllib.request.build_opener(proxyHandler)#install opener
urllib.request.install_opener(url)
#发起网络请求
response=opener.open(url)
#读取数据
data=response.read().decode("utf8")
print(data)

urllib的使用1相关推荐

  1. Urllib库函数、代理、爬取案例

    Urllib库函数.代理.爬取案例 urllib库-urlopen函数用法 from urllib import request resp=request.urlopen('http://www.ba ...

  2. python基础--urllib

    文章目录 urllib包 介绍 urllib.request模块 urllib.error 模块 urllib.parse模块 构建流程 urllib包 介绍 request:主要负责构造和发起网络请 ...

  3. 【网络爬虫】(1) 网络请求,urllib库介绍

    各位同学好,今天开始和各位分享一下python网络爬虫技巧,从基本的函数开始,到项目实战.那我们开始吧. 1. 基本概念 这里简单介绍一下后续学习中需要掌握的概念. (1)http 和 https 协 ...

  4. Python中的urllib.quote和Go中的url.QueryEscape关系探讨

    工作中多次遇到Python版本的签名算法,需要用Go版本再实现一遍,这就需要牵扯到Python 2.7中的urllib中的quote,quote_plus和Go中net/url包中的url.Query ...

  5. Python网络爬虫--urllib

    本篇随便记录学习崔庆才老师编著的<Python3 网络爬虫开发实战>以及urllib标准库使用 urllib库是Python内置的HTTP请求库,包含四个模块: request:最基本的H ...

  6. python爬虫网络请求超时_6、web爬虫讲解2—urllib库爬虫—基础使用—超时设置—自动模拟http请求...

    利用python系统自带的urllib库写简单爬虫 urlopen()获取一个URL的html源码 read()读出html源码内容 decode("utf-8")将字节转化成字符 ...

  7. python3 urllib 类

    urllib模块中的方法 1.urllib.urlopen(url[,data[,proxies]]) 打开一个url的方法,返回一个文件对象,然后可以进行类似文件对象的操作.本例试着打开google ...

  8. Python3 的urllib实例

    在Python3中合并了 urllib 和 urllib2, 统一命名为 urllib 了,我觉得这样更加合理了.让我们可以像读取本地文件一样读取WEB上的数据.封装了一个类,供以后方便使用吧!并附带 ...

  9. python爬虫入门urllib库的使用

    urllib库的使用,非常简单. import urllib2response = urllib2.urlopen("http://www.baidu.com") print re ...

  10. [Python]urllib库的简单应用-实现北航宿舍自动上网

    在北航,上网前必须通过一个认证系统.次次开电脑都要打开这个认证网页连接一下网络还是挺烦人的.刚好最近看了看了Python的urllib库,那么就写一个最简易的自动登录器吧....(这也算是我的Pyth ...

最新文章

  1. zabbix-proxy分布式监控配置
  2. Mac mysql sql_model引起的问题
  3. linux安全加固(2)
  4. 2019年自考计算机应用基础(实践),2019年自考计算机应用基础模拟题及答案(8)...
  5. centos7 elk7.1.1安装
  6. ABAP内表在ABAP 740后支持的filter操作
  7. android选择头像弹窗,Android App开发常用功能之用户头像选择-Go语言中文社区
  8. 内存分配,任意字节对齐
  9. 打不开mysql exe文件怎么打开文件_exe文件打不开怎么办?
  10. Linux下MongoDB安装和配置详解
  11. 【Demo 0003】Java基础-数组
  12. LeetCode 28. Implement strStr()
  13. vs2010无法添加dll引用
  14. vbs代码弹计算机,如何恶搞朋友的电脑?超简单的vbs代码
  15. 深度Linux与永中集成Office相聚在未来
  16. 市科创委智能硬件联盟之打造公共平台,助力创新创业论坛圆满落幕
  17. matlab矩阵二阶微分方程求解,MATLAB解含参数方程、矩阵方程、二阶微分方程组
  18. 麻雀虽小,五脏俱全:从一个小功能看软件开发过程[转]
  19. win7 U盘安装和激活
  20. HDU-1863 畅通工程

热门文章

  1. 10 分钟搞定 Vim 编辑器常用命令!
  2. C++项目实战——简易版日期计算器(Date类改编)
  3. 关键词搜索淘宝商品列表接口,关键词搜索接口,淘宝关键词搜索接口,item_search - 按关键字搜索淘宝商品列表接口,接口参数说明。
  4. 大数据图解美英法空袭叙利亚,都动用了哪些装备?
  5. 川大计算机学院李川,川大计算机学院硕导名单_跨考网
  6. openvpn部署和迁移
  7. 基于JAVA的ICQ系统的设计于实现
  8. 求丑数(判断一个整数是否是丑数)
  9. 解决 VMWare 15.5.5 安装 CentOS 7 出现大小写混乱问题
  10. python 典型相关分析_Canonical Correlation Analysis 典型相关分析