python爬虫---urllib库的基本用法
urllib是python自带的请求库,各种功能相比较之下也是比较完备的,urllib库包含了一下四个模块:
urllib.request 请求模块
urllib.error 异常处理模块
urllib.parse url解析模块
urllib.robotparse robots.txt解析模块
下面是一些urllib库的使用方法。
使用urllib.request
import urllib.request
response = urllib.request.urlopen('http://www.bnaidu.com')
print(response.read().decode('utf-8')) 
使用read()方法打印网页的HTML,read出来的是字节流,需要decode一下
import urllib.request
response = urllib.request.urlopen('http://www.baidu.com')
print(response.status) #打印状态码信息  其方法和response.getcode() 一样  都是打印当前response的状态码
print(response.getheaders()) #打印出响应的头部信息,内容有服务器类型,时间、文本内容、连接状态等等
print(response.getheader('Server'))  #这种拿到响应头的方式需要加上参数,指定你想要获取的头部中那一条数据
print(response.geturl())  #获取响应的url
print(response.read())#使用read()方法得到响应体内容,这时是一个字节流bytes,看到明文还需要decode为charset格式
为一个请求添加请求头,伪装为浏览器
1.在请求时就加上请求头参数
import urllib.request
import urllib.parse url = 'http://httpbin.org/post'
header = {}
header['User-Agent'] = 'Mozilla/5.0 ' \
'(Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 ' \
'(KHTML, like Gecko) Version/5.1 Safari/534.50' req = urllib.request.Request(url=url, headers=header)
res = urllib.request.urlopen(req)
Request是一个请求类,在构造时将headers以参数形式加入到请求中
2.使用动态追加headers的方法
若要使用动态追加的方法,必须实例化Request这个类
import urllib.request
import urllib.parse url = 'http://httpbin.org/post' req = urllib.request.Request(url=url)
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0')
res = urllib.request.urlopen(req)
使用代理:
ProxyHandler是urllib.request下的一个类,借助这个类可以构造代理请求
参数为一个dict形式的,key对应着类型,IP,端口
import urllib.request
proxy_handler = urllib.request.ProxyHandler({
    'http':'112.35.29.53:8088',
    'https':'165.227.169.12:80'
})
opener = urllib.request.build_opener(proxy_handler)
response = opener.open('http://www.baidu.com')
print(response.read())
urllib.parse的用法
import urllib.request
import urllib.parse url = 'http://httpbin.org/post'
header = {}
header['User-Agent'] = 'Mozilla/5.0 ' \
'(Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 ' \
'(KHTML, like Gecko) Version/5.1 Safari/534.50' data = {}
data['name'] = 'us'
data = urllib.parse.urlencode(data).encode('utf-8')
req = urllib.request.Request(url=url, data=data, headers=header, method='POST')
response = urllib.request.urlopen(req)
print(response.read().decode('utf-8'))
print(type(data))
urllib这个库很坑,建议直接弃用,上个月我用urllib写好的代码,现在运行起来各种问题
所以使用requests库吧,超简洁的语法方法。
python爬虫---urllib库的基本用法的更多相关文章
- Python爬虫Urllib库的高级用法
		
Python爬虫Urllib库的高级用法 设置Headers 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我们需要设置一些Head ...
 - Python爬虫   Urllib库的高级用法
		
1.设置Headers 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我们需要设置一些Headers 的属性. 首先,打开我们的浏览 ...
 - Python爬虫Urllib库的基本使用
		
Python爬虫Urllib库的基本使用 深入理解urllib.urllib2及requests 请访问: http://www.mamicode.com/info-detail-1224080.h ...
 - python爬虫 - Urllib库及cookie的使用
		
http://blog.csdn.net/pipisorry/article/details/47905781 lz提示一点,python3中urllib包括了py2中的urllib+urllib2. ...
 - 对于python爬虫urllib库的一些理解(抽空更新)
		
urllib库是Python中一个最基本的网络请求库.可以模拟浏览器的行为,向指定的服务器发送一个请求,并可以保存服务器返回的数据. urlopen函数: 在Python3的urllib库中,所有和网 ...
 - python爬虫 urllib库基本使用
		
以下内容均为python3.6.*代码 学习爬虫,首先有学会使用urllib库,这个库可以方便的使我们解析网页的内容,本篇讲一下它的基本用法 解析网页 #导入urllib from urllib im ...
 - Python爬虫--Urllib库
		
Urllib库 Urllib是python内置的HTTP请求库,包括以下模块:urllib.request (请求模块).urllib.error( 异常处理模块).urllib.parse (url ...
 - Python爬虫urllib库的使用
		
urllib 在Python2中,有urllib和urllib2两个库实现请求发送,在Python3中,统一为urllib,是Python内置的HTTP请求库 request:最基本的HTTP请求模块 ...
 - python爬虫urllib库使用
		
urllib包括以下四个模块: 1.request:基本的HTTP请求模块,可以用来模拟发送请求.就像在浏览器里输入网址然后回车一样,只需要给库方法传入URL以及额外的参数,就可以模拟实现这个过程. ...
 
随机推荐
- window7安装python的xgboost库方法
			
window7安装python的xgboost库方法 1.下载xgboost-master.zip文件,而不是xgboost-0.4a30.tar.gz,xgboost-0.4a30.tar.gz是更 ...
 - CentOS 7 安装pip2
			
使用yum安装python-pip,但是报错,说没有可用的包 安装epel源 [root@sishen yum.repos.d]# yum install -y epel-release 然后再安装 ...
 - SQL创建索引和删除索引
			
使用CREATE 语句创建索引 CREATE INDEX index_name ON table_name(column_name,column_name) include(score) 普通索引 C ...
 - ppython的移位操作
			
因为要将js的一个签名算法移植到python上,遇到一些麻烦. int无限宽度,不会溢出 算法中需要用到了32位int的溢出来参与运算,但是python的int是不会溢出的,达到界限后会自己转为lon ...
 - link和@import区别
			
推荐使用:link 区别 1.从属关系区别@import是 CSS 提供的语法规则,只有导入样式表的作用:link是HTML提供的标签,不仅可以加载 CSS 文件,还可以定义 RSS.rel 连接属性 ...
 - 学习笔记48—PS画虚线
			
PS画虚线步骤: 1)我们打开PS后,随便新建一个文件. 2)大小随意. 2)我们选择画笔工具,快捷键是B. 3)画笔面板的快捷键是F5. 4)点击画笔预设面板,再点击右边右上角的下三角,在弹出的菜单 ...
 - C#动态代理
			
所谓代理,就是不直接访问目标对象,而是由中间对象生成一个目标代理类,由中间代理对象来代理目标对象的方法.Java里面有JDK和CGLIB代理.C#里面则使用Castle代理.nuget引用如下: &l ...
 - python爬虫学习(三):使用re库爬取"淘宝商品",并把结果写进txt文件
			
第二个例子是使用requests库+re库爬取淘宝搜索商品页面的商品信息 (1)分析网页源码 打开淘宝,输入关键字“python”,然后搜索,显示如下搜索结果 从url连接中可以得到搜索商品的关键字是 ...
 - (转)winform之ListView
			
一.ListView类 1.常用的基本属性: (1)FullRowSelect:设置是否行选择模式.(默认为false) 提示:只有在Details视图该属性才有意义. (2)GridLines:设置 ...
 - 酷开 5.5 版本安装第三方app
			
https://www.znds.com/jc/article/2952-1.html .开始安装(以安装当贝桌面为例): adb connect 192.168.XXX.XXX(电视IP) adb ...