上节课认识了网页的构成之后,这节课我们来解析网页中的元素。
这节课的目标是,从你自己写的网页中,筛选出来所有评分大于3的文章。自己写的网页自己爬,会更加熟悉一些,也为之后爬取更复杂的真实网页做好铺垫。
【首先是知识点部分】
完成这个爬虫,可以分为三个步骤:
我们先从第一步开始:解析网页
BeautifulSoup 可以帮我们解析网页,为了让你更容易理解,它的使用方法我们可以理解成是做汤的过程。
我们要爬取的网页,就像是需要处理的汤料;
而lxml 是一种解析网页的方法,相当于是一种食谱,还有其他4种不太常用的食谱也列举出来了;
Soup 是解析好的网页,相当于是做好的汤。
接下来是第二步:描述元素位置
我们要爬取的是网页上的某个特定元素,比如:图片、打分,这样的话,就需要告诉程序要爬取的东西在具体什么位置。
有两种方式可以描述元素位置,一种是 Xpath,我们先来理解这一种
看了这张图,你就能明白父子节点、兄弟节点是什么了。更具体的描述,可以去视频里面看。
而 CSS Selector 和 Xpath 很类似,不同点在于:
第三步:从标签中获取你要的信息。
实际上是函数方法和字典的灵活运用,我们在课程案例里面详细讲解。
【然后是课程案例部分】
会带着你一步步实现我们的课程目标,筛选出来所有评分大于3的文章。
具体的编程演示看视频吧。
如果你只是停留在理解与模仿视频敲代码的阶段,那你还是不能真正掌握解析网页的方法,在亲身实践之后才能真正学会。所以,每节课都有一道配套的实战练习题,这节课的练习作业是:爬取这个电商网页的各种信息。
考虑到大多数初学者都不懂得怎么看官方文档,所以我们在作业中引导大家去查阅文档。
这道题的难点在于:如何统计有几个星星。你需要查阅 BeautifulSoup 的中文文档,阅读其中关于 find_all() 的内容,然后试着用文档中学到的方法去解决难点。
上面的内容来自网易云课堂畅销课程 Python实战课程:四周实现爬虫系统
加入课程后,可以看到完整四周课程,获赠零基础预习教程魔力手册,并得到班级老师的辅导与答疑。
欢迎加入预备班 QQ 群和大家讨论 Python 课程问题,参加每周的老学员分享,QQ 群号是:454652648,加群回复:实战计划