用了两天时间,学习了 bs4 和 正则表达式,今天回到 spider.py 主程序。
之前程序已经可以爬取十个网页了。
下面,就该进行网页解析工作了。
首先当然是声明要用的解析器是 html.parser。
然后,使用 for 循环,查找符合要求的字符串,形成列表。
通过在网页按 f12 ,用指针分析每一个信息,找到共性可以发现,实际上我们要找的就是每一个 class=”item” 信息。
这里 class 由于是个类别,所以要加下划线。
打印一下看看输出结果。
跟网页的源码进行对比,可以发现top250第一页中,符合要求的信息都已经被提取了。
所以,如何想提取更具体的信息怎么办?
依然按照上面的思路,找到相应标签内容,制定规则进行提取就好了。
下一步,就是把一个电影中的重要信息,一条条存起来。
这就需要提取每部电影的链接。
先使用正则表达式定义一个变量,需要把<a href=”网址”>表示出来。
这里的括号先输入一个 r ,就是忽视所有特殊符号的意思。
考虑到里面会使用双引号,所以最外面使用的是单引号。
最后得出: findLink = re.compile(r'<a href="(.*?)">')
在解析函数里,使用 re.findall 进行查找,直接就找出了25个链接,可以说是非常舒爽了。
这段实际上就是解析网页的核心内容。
接下来找电影名、图片链接、评分等的代码,本质上都是在重复这段内容。
这里加了一个 re.S 表示忽略可能出现的换行符,让换行符包含在字符中。
这样,就定义了影片所有信息的所有规则。
这一刻,我仿佛已经看到了希望。
爬虫之路,豁然开朗!