python爬虫:请求页面基本库(一)urllib

python爬虫:基本库(一)urllib

学习爬虫,最初的操作便是模拟浏览器向服务端发出请求,这里我们就学习使用urlib库的用法

使用urllib

首先,我们需要了解urllib库,它是python内置的HTTP请求库,也就是说不需要额外安装即可使用,它包含4个模块
request:它是最基本的HTTP请求模块,可以用来模拟发送请求。
error:异常处理模块。
parse:一个工具模块,提供了许多URL处理方法。
robotparser:主要时用来识别网站的robot.txt文件然后判断那些网站是否可以爬。

发送请求

urllib.request模块提供了最基本的构造HTTP请求的方法,urllib.request.urlopen(),若在获取请求对象时,不需要过多的参数传递,可以直接选择urllib.request.urlopen();如果需要加入Headers等信息请求则使用urllib.request.Request()。

1.urlopen()

这里我们以www.baidu.com为例,把这个网页抓取下来.
代码如下:

import urllib.request

response = urllib.request.urlopen('http://www.baidu.com')
print(response.read().decode('utf-8'))
添加data(附加数据)参数

data参数是可选的。如果要添加该参数,需要使用bytes()方法将参数转化为bytes类型。另外,如果传递了这个参数,则它的请求方式就不再是GET方式,而是POST方式。
实例:

import urllib.request
import urllib.parse

data = bytes(urllib.parse.urlencode({
   'word': 'hello'}), encoding='utf-8')
response = urllib.request.urlopen('http://httpbin.org/post', data=data)
print(response.read())

我们传递的参数出现在了form字段中,这表明是模拟了以表单提交的方式,以POST方式传输数据,这里的
http://httpbin.org是一个提供HTTP请求测试的站点。

添加timeout(超时时间)参数

timeout参数用于设置超时时间,单位为s,如果请求超出了设置的这个时间还未响应,就会抛出异常。
实例:

import urllib.request

response = urllib.request.urlopen('http://httpbin.org/post', timeout=1)
print(response.read())

在爬取页面的过程中,若一个页面长时间无法响应将导致后续工作无法进行,所以设置timeout超时时间很有必要。

urllib.request官方文档

2.Request()

实例:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值