网络爬虫基础(二)

例子:

importurllib2

response= urllib2.urlopen("http://www.baidu.com")

printresponse.read()

 

urlopen(url, data, timeout)

第一个参数url即为URL

第二个参数data 是访问URL 时要传送的数据

第三个timeout是设置超时时间

返回response对象

read 方法,可以返回获取到的网页内容

例子:

importurllib2

request= urllib2.Request("http://www.baidu.com")

response= urllib2.urlopen(request)

printresponse.read()

•上面的urlopen参数可以传入一个request 请求(其实就是一个Request类的实例)

 

Http定义了不服务器交互的不同方式

––GET[获取/查询]

GET 方式是直接以链接形式访问,链接中包吨了所有的参数

––POST[更新]

POST把提交的数据则放置在是HTTP包的包体中

––PUT[增加] DELETE[删除] <>

例子(POST)

––import urllib

––import urllib2

––values = {"username":zhangsan@gmail.com","password":xxx"}

––data = urllib.urlencode(values)

––url="https://passport.csdn.net/account/login?xxx=yyyy"

––request = urllib2.Request(url,data)

––response = urllib2.urlopen(request)

––print response.read()

Headers设置

––User-Agent : 部分服务器戒Proxy 会通过该值来判断是否是浏览器发出的请求

很多网页不允许非浏览器访问,爬虫的时候要伪装成浏览器,就通过User-Agent来设置。

––Content-Type : 在使用REST 接口时,服务器会检查该值,用来确定HTTP Body 中的内容该怎样解析。

––application/xml :在XML RPC,如RESTful/SOAP 调用时使用

––application/json:在JSON RPC 调用时使用

––application/x-www-form-urlencoded:浏览器提交Web 表单时使用

Urlliburllib2之 间的区别

––urllib2可以接受一个Request类的实例来设置URL请求的headersurllib仅可以接受URL。这意味着,你丌可以伪装你的User Agent字符串等

––urllib提供urlencode方法用来GET查询字符串的产生,而urllib2没有。这是为何urllib常和urllib2一起使用的原因

Urllib中的urlencode函数 ,可以把key-value这样的键值对转换成我们想要的格式,返回的是a=1&b=2这样的字符串

例子:

importurllib

importurllib2

url='http://www.zhihu.com/login'

user_agent='Mozilla/5.0 (compatible; MSIE 5.5; Windows NT)' values = {'username' Lee', 'password' : 'XXXX' }

headers= { 'User-Agent' : user_agent}

data =urllib.urlencode(values)

request= urllib2.Request(url, data, headers)

response= urllib2.urlopen(request)

page =response.read()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值