BeautifulSoup的简单使用和抓取静态页面图片
今天简单的看了一下关于python中的一个抓取html的第三方库——BeautifulSoup。可以使用这个库对各种HTML页面进行抓取。以前我抓取今天页面都是使用Python中自带的库HTMLParser。不过学习了HTML,javascript后,对HTML的DOM树状结构有了一定了解之后。使用HTMLParser抓取页面就显得有些无力,所以用BeautifulSoup抓取,就更加高效。
BeautifulSoup的安装
- 先从BeautifulSoup的安装说起,BeautifulSoup的官网是:点击打开链接,可以从其官网现在最新版本,在终端中输入python setup.py install。
- 可以使用pip安装,在终端输入pip install BeautifulSoup。
BeautifulSoup的简单使用
BeautifulSoup中的类
- 最先介绍BeautifulSoup中最基础的一个类——BeautifulSoup类。BeautifulSoup的类,其类中的构建是需要一个字符串作为参数,该字符串应当为HTML文档。HTML文档可以通过urllib的urlopen方法获取,也可以自己编写。
<span style="white-space:pre"> </span>soup = BeautifulSoup.BeautifulSoup(html)
通过urllib获取在线的HTML文档。
<span style="white-space:pre"> </span>html = urllib.urlopen(url).read()
这样就完成了简单的BeautifulSoup对象的构建。通过对Soup对象,也就是BeautifulSoup的实例中的方法的应用,可以对HTML文档进行简单的操作。
2. BeautifulSoup中还有一个BeautifulSoup.tag类,这是通过BeautifulSoup中的一个子类。主要是储存HTML文档中标签的相关信息,可以通过该类对标签中重要的信息进行简单的操作。
<span style="white-space:pre"> </span>print soup.html.head
soup.html、soup.head就是tag这个类的。
3.
BeautifulSoup.NavigableString类,应该是tag类中的子类。其中包含了两个标签之间的字符串。
<span style="white-space:pre"> </span>print soup.html.head.title.string
这样就打印出了网页页面的标题了。