[Python期末拯救者]python期末考试中的html分析题目解法

声明:这个是写给一点都不会的人看的,懂哥勿喷

示例题目:

从 教务处信息网.html 文件中获取文章标题与链接 并且存入result.csv

需要处理的标签格式如下

<a(一个及以上空格)href=”(链接)”(一个及以上空格)target=”_blank”(一个及以上空格)title=”(标题)”>

首先我们对这个题目进行分析,要从文件中提取出上述信息,必然会用到正则表达式对整个html文件进行匹配,然后将匹配结果写入csv文件

所以,我们整个任务的重点就是正则表达式的写法,以及对csv文件的写入

正则表达式写法

正则表达式操作的重点就是声明出你知道的部分,让计算机去匹配你不知道的部分,比如说标签格式中的字符就是你知道的部分,哪里有空格也是你知道的部分,链接和标题就是你希望计算机帮你找到的部分

对于不会的人来说,只需要知道用(.*?)来标记需要计算机来找的部分就能解决绝大多数的问题了,然后什么转义字符什么的稍微记一记就好了,比如说我们可以用\s+来表示一个及以上空格,这里相关用法就不赘述了,不会的自己查。

因此我们需要的正则表达式如下

<a\s+href=”(.*?)”\s+target=”_blank”\s+title=”(.*?)”>

然后我们用re.findall就能找到所有匹配的内容,当每次匹配时有多个匹配项时(比如这里,有两个匹配项),那输出的list的每个元素将是包含每个匹配项的元组,按照匹配顺序排列

写入csv文件

csv是一种极其简单的数据存储方式

可以将它抽象成一张表格,每一行间通过换行符来分隔,每一列通过英文逗号分隔。

所以好像也没啥难的…,注意编码格式就行了…

示例题目和代码在链接里