把玩之python爬虫urllib2
来源:互联网 发布:演技最烂的演员知乎 编辑:程序博客网 时间:2024/05/07 02:02
原文链接:静觅 » Python爬虫入门三之Urllib库的基本使用
1,什么是urllib2库?
urllib2是python的一个获取URLs的组件,通过urlopen函数的形式来提供了一个非常简单的接口,根据不同协议获取URLs的能力,urllib2提供了一个比较复杂的接口来处理情况,例如:基础验证,cookies,代理和其他。
我们分析代码:
response=urllib2.urlopen("http://www.baidu.com")
首先,我们调用的是urllib2库中的urlopen方法,传入了一个链接,协议是HTTP协议,同样我们可以把HTTP协议换成FTP协议,FILE,HTTPS等,只是代表一>种访问协议。
urlopen一般接受三个参数:1,url。2,data,即为访问URL时要传送的数据。3,timeout,即为超时时间。第二、三个参数可以采用默认,data默认为空,timeout默认为socket._GLOBAL_DEFAULT_TIMEOUT.第一个参数必须有的。
print response.read()
response对象有一个read()方法,用来获得链接网页中的所有内容。
注意:大多数时候,我们构造Request类的实例,传入上面的urlopen。构造Request时需要传入Url,Data等等内容。如以上代码可以改写为:
request=urllib2.Request("http://www.baidu.com") response=urllib2.urlopen(request) print response.read()
目前大多数情况下我们需要在访问时通过传递数据,意识目标网页做出响应。比如:登录注册
数据传递有两种方式:POST和GET
我们知道两者之间的区别是GET是通过链接来传递数据(参数),而POST是隐式的传递数据而不通过链接传递。
POST方式:
import urllib import urllib2 value={"username":"1357200562@qq.com","password":"123"} data=urllib.urlencode(value) request=urllib2.Request("http://password.csdn.net....",data) response=urllib2.urlopen(request) print response.read()
有一些站点不喜欢被程序(非人为访问)访问,或者发送不同版本的内容到不同的浏览器上。默认的urllib2把自己作为“Python-urllib/x.y”(x和y是python主版本和次版本号)。 这个身份让站点感到迷惑,或者干脆不工作。而浏览器则不同,浏览器确认自己的身份是通过User-Agent头,当你创建一个请求对象,你就
可以给他一个包含头数据的字典。如下:
import urllib import urllib2 url="http://...." user-agent="Mozilla/4.0....." values={"name":"bob","location":"pythontab","language":"Python"} headers={"User-Agent":user-agent} data=urllib.urlencode(values) request=urllib2.Rquest(url,data,headers) response=urllib2.urlopen(request) print response.read() GET方式: import urllib import urllib2 values={} values["username"]="1357200562@qq.com" values["password"]="123" data=urllib.urlencode(values) url="http://...." user-agent="Mozilla/4.0...." headers={"User-Agent":user-agent} geturl=url+"?"+data request=urllib2.Request(geturl,headers) response=urllib2.urlopen(request) print response.read()
0 0
- 把玩之python爬虫urllib2
- 把玩之python爬虫urllib2高级篇
- Python爬虫之urllib2介绍
- 把玩之python爬虫cookie篇
- 把玩之python爬虫正则表达式
- Python爬虫入门_之urllib2&&urllib
- python模块之urllib2基本爬虫入门
- python爬虫之urllib2登录并抓取HTML页面
- Python 爬虫 urllib2异常处理
- Python爬虫urllib2笔记(二)
- python爬虫--urllib2和requests
- Python爬虫----爬虫入门(3)---urllib2
- Python之urllib2
- python写爬虫使用urllib2方法
- python写爬虫使用urllib2方法
- python开发爬虫----urllib2下载网页方法
- python爬虫--urllib2和urllib区别
- 【Python网络爬虫 】新手实践笔记--urllib2
- 根据id拿到泛型集合中的对象
- Bzoj3456:城市规划:NTT
- 欢迎使用CSDN-markdown编辑器
- Binary Tree Preorder -JS
- (html/javascript)可以用鼠标自由拖动的div(收藏)
- 把玩之python爬虫urllib2
- [Leetcode刷题]Single Number
- 开发框架汇总
- ViewPager(1):简单的使用ViewPager
- memcache笔记
- 实用的下拉刷新上拉加载数据功能
- 柴俊理金:6月17号早间现货黄金,宁贵沥青操作建议
- Bouncy Castle
- php中求前三个与后三个大写字母中间的小写字母