尝试python 爬虫新工具playwright
playwright是微软发布的一款自动化测试工具,需要 Chromium 浏览器的支持;
1、安装playwright
pip install --upgrade pip
pip install playwright
2、安装浏览器驱动文件(安装过程稍微有点慢)
python -m playwright install
3、录制
使用Playwright无需写一行代码,我们只需手动操作浏览器,它会录制我们的操作,然后自动生成代码脚本.-o 参数my.py就是保存的PY 文件;
python -m playwright codegen --target python -o 'my.py' -b chromium https://www.baidu.com
import xlwt # 导入sync_playwright方法 from playwright.sync_api import sync_playwright # 定义run()方法 def run(playwright): # 调用playwright的chromium创建浏览器实例,脚本运行需要首先打开浏览器实例 # 如果不设置为 False,默认是无头模式启动浏览器,我们看不到任何窗口 browser = playwright.chromium.launch(headless=False) # 创建context对象,context运行资源是单独隔离的,可以理解为轻量级的浏览器实例 context = browser.new_context() # 返回page对象,新建页面 page = context.new_page() # 加载豆瓣网页面 page.goto("https://movie.douban.com/") # 使用CSS选择器选定电影榜单位置 #names = page.query_selector_all("#billboard > div.billboard-bd > table > tbody > tr > td > a") # 使用xpath选择器获取 names = page.query_selector_all("//*[@id='billboard']/div[2]/table/tbody/tr/td/a") # 新建列表 用于存储电影名字和链接 listName = [] # 因电影榜单数据都为<tr><td>样式,遍历每一条样式 for name in names : # 获取a节点中的电影名字 content = name.text_content() # 获取a节点中的电影链接 link = name.get_attribute("href") # 将每行字符串追加到列表中 listName.append((content,link)) print(content,link) print(listName) # 创建wordbook对象 workbook = xlwt.Workbook(encoding = 'utf-8') # 创建工作表 worksheet = workbook.add_sheet('豆瓣电影TOP10') # 设置工作表的表头,write(行,列,值) worksheet.write(0, 0, label="豆瓣电影TOP10") worksheet.write(2, 0, label="名称") worksheet.write(2, 1, label="链接") # 设置单元格宽度 worksheet.col(0).width = 4000 worksheet.col(1).width = 10000 for i,items in enumerate(listName): print(i,items) # 将获取到的items写入excel中 write(行,列,值) worksheet.write(i+3, 0, items[0]) worksheet.write(i+3, 1, items[1]) # 保存工作表 workbook.save('Excel_test.xls') page.close() context.close() browser.close() #调用sync_playwright方法,返回浏览器上下文管理器,赋值为p with sync_playwright() as playwright: run(playwright)
参考:(86条消息) playwright教程 (一)适合小白_小白白学爬虫的博客-CSDN博客
活到老,学到老。