![Python 3 爬虫、数据清洗与可视化实战(第2版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/935/32517935/b_32517935.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.5 清洗和组织数据
至此,我们获得了一段目标的HTML代码,但还没有把数据提取出来,接下来在PyCharm中输入以下代码。
![img](https://epubservercos.yuewen.com/3DAE1E/17545851106441906/epubprivate/OEBPS/Images/txt002_40.jpg?sign=1738917627-eSrRVe635O6o6FnY71C0pm3vWDfp2Z52-0-ca0ebd958759f12feb47e8c9e5d1c067)
代码运行结果如图2-22所示。
![img](https://epubservercos.yuewen.com/3DAE1E/17545851106441906/epubprivate/OEBPS/Images/txt002_41.jpg?sign=1738917627-PZnO2ojR00QMjvg9SiPwcgD4sZrA5xeK-0-97bbd4627a093f9fc94498c677b9fcb9)
图2-22
首先明确要提取的数据是标题和链接,标题在<a>标签中,提取标签的正文用get_text()方法;链接在<a>标签的href属性中,提取标签中的href属性用get()方法,在括号中指定要提取的属性数据,即get('href')。
从图2-23中可以发现,每篇文章的链接中都有一个数字ID。下面用正则表达式提取这个ID。
![img](https://epubservercos.yuewen.com/3DAE1E/17545851106441906/epubprivate/OEBPS/Images/txt002_42.jpg?sign=1738917627-5bh5ZSMSrEfiIqQvIXS4878mg3crr7FV-0-a96b5db2c043a1fbb114967bff10aca1)
图2-23
需要使用的正则符号如下。
● \d:匹配数字。
● +:匹配前一个字符1次或多次。
在Python中调用正则表达式时使用re库,这个库不用安装,可以直接调用。在PyCharm中输入以下代码。
![img](https://epubservercos.yuewen.com/3DAE1E/17545851106441906/epubprivate/OEBPS/Images/txt002_43.jpg?sign=1738917627-pmLdTKidpNu0X3seBJWMwVWRjPIFidd4-0-f25b033d7736d477a994683bf6216524)
运行结果如图2-24所示。
这里使用re库的findall()方法,第一个参数表示正则表达式,第二个参数表示要提取的文本。