您的位置:首页 > 理论基础 > 计算机网络

网络爬虫基础(二)

2016-10-28 11:14 148 查看

例子:

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
表单时使用

Urllib不urllib2之
间的区别

––urllib2可以接受一个Request类的实例来设置URL请求的headers,urllib仅可以接受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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: