Python爬取⼀个简单⽹页的HTML代码
这⼏天我初学Python的urllib库,学学Python⽹络爬⾍知识,结果学起来⽐我想象的难得多,⽐学习界⾯都难。
urllib是什么?
我们⾸先了解⼀下 Urllib 库,它是 Python 内置的 HTTP 请求库,也就是说我们不需要额外安装即可使⽤,它包含四个模块:
第⼀个模块 request,它是最基本的 HTTP 请求模块,我们可以⽤它来模拟发送⼀请求,就像在浏览器⾥输⼊⽹址然后敲击回车⼀样,只需要给库⽅法传⼊ URL 还有额外的参数,就可以模拟实现这个过程了。
第⼆个 error 模块即异常处理模块,如果出现请求错误,我们可以捕获这些异常,然后进⾏重试或其他操作保证程序不会意外终⽌。
第三个 parse 模块是⼀个⼯具模块,提供了许多 URL 处理⽅法,⽐如拆分、解析、合并等等的⽅法。
第四个模块是 robotparser,主要是⽤来识别⽹站的 ⽂件,然后判断哪些⽹站可以爬,哪些⽹站不可以爬的,其实⽤的⽐较少。
在这⾥重点对前三个模块进⾏下讲解。
现在我来说⼀个怎么使⽤urllib库爬取⼀个⽹页的HTML代码,可以输出,也可以保存进⼀个⽂件
向),cookies(浏览器Cookies)以及其它内容。
我们来感受⼀下它的强⼤之处,以 Python官⽹为例,我们来把这个⽹页抓下来:
quest
response = quest.urlopen('')
ad().decode('utf-8'))
运⾏结果
这是⼀个截图,实际上很多⾏都输出在了IDLE上(我直接⽤的解释器)
接下来我们看下它返回的到底是什么,利⽤ type() ⽅法输出 Response 的类型。
quest
response = quest.urlopen('')
print(type(response))
输出结果:
html制作一个网页<class 'http.client.HTTPResponse'>
通过输出结果可以发现它是⼀个 HTTPResposne 类型的对象,它主要包含的⽅法有 read()、readinto()、getheader(name)、getheaders()、fileno() 等⽅法和 msg、version、status、reason、debuglevel、closed 等属性。
得到这个对象之后,我们把它赋值为 response 变量,然后就可以调⽤这些⽅法和属性,得到返回结果的⼀系列信息了。
例如调⽤ read() ⽅法可以得到返回的⽹页内容,调⽤ status 属性就可以得到返回结果的状态码,如 200 代表请求成功,404 代表⽹页未到等。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论