一:前言
在写着自动化测试的脚本时,重新复习了一下正则表达式findall()方法。为了深化印象,输出点东西,就来写个通过正则表达式爬取菜鸟教程标题的小案例。
参考教程:菜鸟教程之Python正则表达式
二:操作
目标:
爬取菜鸟教程首页所有小标题,并输出在控制台。
目标标题:(红色方框那些,爬取页面全部的小标题)
笔者默认大家都安装了python和安装了谷歌的驱动了。
再看看小标题的组成规律:(H4和“【】”)
上代码:
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
from selenium import webdriver
import re
import time
class runoob():
def __init__(self):
#获取驱动
self.browser = webdriver.Chrome()
#确定目标网站
self.browser.get("https://www.runoob/")
#窗口最大化
self.browser.maximize_window()
#隐性等待3秒,打不开页面才报错
self.browser.implicitly_wait(3)
def close_window(self):
#静待5秒
time.sleep(5)
#退出页面
self.browser.quit()
def get_title(self):
#获取页面源码
self.page = self.browser.page_source
#匹配标题。小标题都是H4大小的,并且都被“【】”包围着
self.titles = re.findall(r'【(.*?)】</h4>', self.page)
#循环输出在控制台
for title in self.titles:
print(title)
if __name__ == '__main__':
#创建类
runoob = runoob()
#调用获取小标题方法
runoob.get_title()
#调用退出窗口方法
runoob.close_window()
三:尾言
笔者演示了正则表达式中findall方法比较常见的用法,如果还想深入了解此方法或其它方法,请多看看菜鸟教程。
更多推荐
Python中正则表达式findall用法
发布评论