python3urllib库爬虫_Python网络爬虫之Urllib库的使用

1 简单爬取一个网页

怎么爬取一个网页内容那?首先我们要知道其URL,然后根据URL来请求远程web服务器将网页内容发给我们就好了。当我们在浏览器看到一副画面唯美的页面,其实这是由浏览器经过渲染后呈现出来的,实质上是一段HTML内容,加上CSS和JS。如果将一个网页比作一个人的话,HTML就是人的骨架,CSS就像是人的衣服,JS就是人的肌肉,所以最重要的就是HTML,下面我们就用简单的两行代码来请求获得百度首页的HTML内容:

执行该Python代码,打印出来便是百度首页的HTML内容:

2 代码解析

这行代码我们调用了urllib库中request模块的一个urlopen方法,并传了它一个网页地址,我们看看urlopen方法的原始定义:

其他几个参数都是默认参数,可不传递,其中data是访问URL时传送的数据,timeout参数是设置访问超时的。Urlopen返回的是一个response是什么那?打印出来为:

可见response是一个HTTPResponse对象,所以利用其read()方法获取HTML页面内容。

3 构造Request

其实在实际的编程中,我们一般不会直接给urlopen函数只是传递一个网址,因为一个完成的URL请求会包含很多内容,所以在request模块里有一个Requst类,封装了URL请求所需的众多参数,所以在请求服务器之前,先构建了一个Request对象,这样就显得逻辑很清楚了,如下:

4 数据传送方法GET和POST

上面方法获取到的是一个静态页面,现在的网页大多都是动态网页,需要动态的给网站传递参数,然后网站做出对应的响应,比如登录注册操作,这就要用到数据传送。

数据传送有两种方法,一种是GET,另一种是POST,两种方法的区别是GET方法是直接以链接的方式进行传送,参数包含在链接中,传了什么参数一目了然,缺点是参数不安全;POST方法则不会讲参数直接放到链接中,你想直观的看到传递参数就没那么容易了,但从安全角度来讲会更好。

POST方式:

上面说到urlopen函数中有一个参数data,就是用来传送请求数据的,POST方式就是借助data参数来传递的,如下:

首先需要构造一个包含用户名和密码的字典数据usr,然后用urllib.parse中的方法urlencode方法对字典数据进行编码,并将其传递给request对象中,这样就完成了POST动态网页的请求操作。

GET方式:

GET方式则是直接将用户名和密码参数写到网址中,构造一个新的URL,再进行请求,如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值