首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python基础教程 Beautiful Soup

15.1.2 Beautiful Soup

Beautiful Soup是一个小巧而出色的模块,用于解析你在Web上可能遇到的不严谨且格式糟糕的HTML。

Beautiful Soup网站(http://crummy.com/software/BeautifulSoup)称:那个糟糕的网页并非出自你的手笔。你只是想从中提取一些数据。 Beautiful Soup将向你伸出援手。

下载并安装Beautiful Soup易如反掌。与大多数包一样,你可使用pip来完成这种任务。

$ pip install beautifulsoup4

你可能想使用pip进行搜索,看看是否有更新的版本。安装Beautiful Soup,编写从Python JobBoard提取Python职位的程序非常容易,且代码很容易理解,如代码清单15-3所示。这个程序不检查网页的内容,而是在文档结构中导航。

jobs.add('{} ({})'.format(job.a.string, job.a['href']))

print('\n'.join(sorted(jobs, key=str.lower)))

我使用要从中抓取文本的HTML代码实例化BeautifulSoup类,然后用各种机制来提取解析树的不同部分。例如,使用soup.body来获取文档体,再访问其中的第一个section。使用参数'h2'调用返回的对象,这与使用其方法find_all等效——返回其中的所有h2元素。每个h2元素都表示一个职位,而我感兴趣的是它包含的第一个链接job.a。属性string是链接的文本内容,而a['href']为属性href。你肯定注意到了,在代码清单15-3中,我使用了set和sorted(通过将参数key设置为一个函数以忽略大小写)。这些与Beautiful Soup毫无关系,旨在消除重复的职位并按字母顺序打印它们,从而让这个程序更有用。

如果你要抓取(本章后面将讨论的) RSS feed,可使用另一个与Beautiful Soup相关的工具,名为Scrape ‘N’ Feed(http://crummy.com/software/ScrapeNFeed)。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190502A08BEI00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券