其他分享
首页 > 其他分享> > 从零开始爬虫系统学习Day1——2021.2.19

从零开始爬虫系统学习Day1——2021.2.19

作者:互联网

从零开始爬虫系统学习Day1——2021.2.19

前言

回顾

题外话

大学这四年啥都学了,而当自己尝试回忆或者去用的时候,发现能记住的都是落在笔头上的和零零散散在各大论坛发过帖子的。希望自己能养成记录的好习惯,也希望现在开始能及时补救漏洞。(不得不说,CSDN的MARKDOWN编辑模式是最舒服的)

今日记录:HTML的简单解析与书写规范

标准库urllib及使用规范

urllib提供的功能就是利用程序去执行各种HTTP请求,其中包含了各种各样的模块,最为被熟知和使用的就是urllib.request,使用方法是:

from urllib.request import xxx

其中xxx表示需要从request模块中调用的功能,例如当我们想获取某个页面的HTML文件里的所有内容,可以使用urlopen去获取:

from urllib.request import urlopen

html = urlopen('http://xxxx/xxx/xx.html')
print(html.read())

当然,如果你需要用到request里的多种函数,可以这样

from urllib import request
request.xxx ...............

但每次用到具体功能的时候都要以request.xxx的形式使用。原因很简单,函数从属于模块模块从属于import声明什么只能用什么。

Beautiful Soup,每个人都离不开这碗“汤”

HTML通过标签分级分层。现如今HTML内容十分庞杂,个人想从中获取有用信息的第一步就是要想办法拆分。而Beautiful Soup可以通过识别标签以及调用解析器来完成拆分并获取指定标签里的内容:

from urllib.request import urlopen
from bs4 import BeautifulSoup

html = urlopen('http://xxx/xx/xx.html')
bs = BeautifulSoup(html.read(), 'html.parser')
print(bs.h1)

Beautiful Soup也可以直接调用urlopen,可以无需使用.read()

from urllib.request import urlopen
from bs4 import BeautifulSoup

bs = BeautifulSoup(html, 'html.parser')
print(bs.h1)

事实上,网页的HTML由于书写不规范、版本不一等问题,往往可能会影响对标签的识别。这时候需要我们对解析器进行调整,尝试用的解析器有三个,分别是“html.parser”、“lxml”以及“html5lib”,对应 BeautifulSoup(xxx,‘xxx’ )传入的第二个参数,这三个解析器的对比是这样的:

解析器名称是否需要外部依赖是否依赖第三方C语言库容错度运行速度
html.parser整洁少错代码最快
lxml杂乱少错代码中等
html5lib混乱有错代码最慢

标签:2021.2,19,xxx,request,urllib,Day1,urlopen,html,import
来源: https://blog.csdn.net/weixin_42224065/article/details/113868244