学习爬虫, 最初的操作便是模拟浏览器向服务器发出请求。使用一下库实现此请求
1.urllib库的使用
urllib 库是Python 内置的HTTP 请求库,包含以下四个模块:
1.request:http请求模块
2.error:异常处理模块
3.parse:工具模块,提供url的处理方法
4.rebotparser:识别网站robots.txt,判断网站能不能抓取
(1)发送请求使用request模块
1》urlopen()
url.request模块提供最基本的构造http请求的方法,模拟浏览器的一个请求得发起过程。
抓取源代码案例:
使用最基本的urlopen ()方法,可以完成最基本的简单网页的GET 请求抓取。
利用type()方法返回查看响应 的类型:
响应的类型的对象为HTTPResponse:主要包含主要包含read () 、rea d into ()、getheader(name )、
gethea ders () 、file no ()等方法,以及msg 、version 、status 、reason 、debuglevel 、ιlosed 等属性。
得到这个对象之后,我们把它赋值为response 变量,然后就可以调用这些方法和属性,得到返回
结果的一系列信息了。
比如:调用read ()方法可以得到返回的网页内容,调用status 属性可以得到返回结果的状态码,
如200 代表请求成功, 404 代表网页未找到等。
给链接传递一些参数的实现:
urllib.request.urlopen(url,data=None,[Timeout,]*,Cafile=None,capath=None,cadefault=False,context=None)
**data参数:**如果要添加该参数,并且是以字节流编码格式的内容,即bytes类型,则需要通过bytes()方法转化。如果传递了这个参数,则请求得方式不再是GET方式,而是POST方式。
这里我们传递了一个参数word ,值是hello 它需要被转码成bytes (字节流)类型。其中转字
节流采用了bytes ()方法,该方法的第一个参数需要是str (字符串)类型,需要用urllib.parse 模
块里的urlencode ()方法来将参数字典转化为字符串;第二个参数指定编码格式,这里指定为utf8 。
爬虫入门——数据抓取
最新推荐文章于 2024-07-07 08:00:00 发布