21爬虫:使用playwright接管本地已经登录淘宝的浏览器并查找python相关店铺信息

news2025/2/15 13:45:17

1.playwright如何接管本地浏览器

(1)首先找到电脑上安装的Chrome浏览器可执行程序的完整路径:

        Mac电脑上可执行程序的完整路径为:

                /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

        windows系统的电脑上查找可执行文件的完整路径:

                右键 Chrome 浏览器桌面图标,找到 chrome.exe 的安装路径

(2)将Chrome浏览器可执行程序的完整路径配置到环境变量中,也可以不配置。

(3)假设我们没有配置环境变量,如果配置环境变量直接使用启动本地浏览器命令行即可,以Mac电脑为例,

         进入Chrome浏览器可执行程序的完整路径:

                cd /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

        新建一个空白文件夹,用于保存浏览器数据,我的保存浏览器数据的文件夹目录如下:

                /Users/zy/Desktop/work_file/playwright_data

        在Mac电脑上的终端或者在pycharm的终端中,windows系统的电脑打开cmd,输入如下的命令行代码启动本地浏览器:

                ./Google\ Chrome --remote-debugging-port=8899 --incognito --start-maximized --user-data-dir="/Users/zy/Desktop/work_file/playwright_data"

        windows电脑输入如下的命令行:

              chrome.exe --remote-debugging-port=8899 --user-data-dir="E:\playwright_chrome_data"

(4)百度淘宝,登录淘宝

(5)运行playwright程序,接管上述浏览器,在搜索框中输入python并点击搜索。

--remote-debugging-port是指定浏览器运行端口,只要没被占用就行
--user-data-dir指定运行浏览器的运行数据,新建一个干净目录,不影响系统原来的数据
browser = p.chromium.
        connect_over_cdp('
                http://localhost:8899/
        ')
接管本地浏览器
page = browser.contexts[0].pages[0] 
接管本地浏览器的当前页面

2.程序代码

通过命令行启动本地浏览器并制定托管端口为8899。

命令启动的浏览器如下,百度搜索淘宝并手动档完成淘宝登录。

淘宝登录完毕后,执行如下的代码,接管本地浏览器,搜素python相关信息,并打印输出相应店铺的名称。

'''
(1)启用本地的浏览器,进入淘宝并完成登录;
    cd /Applications/Google Chrome.app/Contents/MacOS
    ./Google\ Chrome --remote-debugging-port=8899 --incognito --start-maximized --user-data-dir="/Users/zy/Desktop/work_file/playwright_data"
(2)使用playwright接管本地浏览器,在搜索框中搜索python打开相应的商品页面;
(3)爬取相应的店铺信息;
'''

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp('http://localhost:8899/')
    page = browser.contexts[0].pages[0] # 一个上下文管理器上有两个page页面

    page.locator('xpath=//*[@id="q"]').fill('python')
    page.locator('xpath=//*[@id="button"]').click()
    page.wait_for_timeout(1000)
    names = page.locator('xpath=//a[@class="ShopInfo--shopName--rg6mGmy"]').all()
    for name in names:
        print(name.inner_text())

    page.close()
    browser.close()

输出的结果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2298663.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis——优惠券秒杀问题(分布式id、一人多单超卖、乐悲锁、CAS、分布式锁、Redisson)

#想cry 好想cry 目录 1 全局唯一id 1.1 自增ID存在的问题 1.2 分布式ID的需求 1.3 分布式ID的实现方式 1.4 自定义分布式ID生成器(示例) 1.5 总结 2 优惠券秒杀接口实现 3 单体系统下一人多单超卖问题及解决方案 3.1 问题背景 3.2 超卖问题的…

【现代深度学习技术】深度学习计算 | GPU

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上,结合当代大数据和大算力的发展而发展出来的。深度学习最重…

USB Flash闪存驱动器安全分析(第一部分)

翻译原文链接:Hacking Some More Secure USB Flash Drives (Part I) | SySS Tech Blog 文章翻译总结:文章对一些具有AES硬件加密的USB闪存驱动器的网络安全分析研究。研究由SySS的IT安全专家Matthias Deeg进行,他在2022年初发现了几个安全漏…

【Linux】--- 基础开发工具之yum/apt、vim、gcc/g++的使用

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏: Linux网络编程 本篇博客我们来认识一下Linux中的一些基础开发工具 --- yum,vim,gcc/g。 🏠 yum 🎸 什么是yum 当用户想下载软…

Python + WhisperX:解锁语音识别的高效新姿势

大家好,我是烤鸭: 最近在尝试做视频的质量分析,打算利用asr针对声音判断是否有人声,以及识别出来的文本进行进一步操作。asr看了几个开源的,最终选择了openai的whisper,后来发现性能不行,又换了…

redis 缓存击穿问题与解决方案

前言1. 什么是缓存击穿?2. 如何解决缓存击穿?怎么做?方案1: 定时刷新方案2: 自动续期方案3: 定时续期 如何选? 前言 当我们使用redis做缓存的时候,查询流程一般是先查询redis,如果redis未命中,再查询MySQL,将MySQL查询的数据同步到redis(回源),最后返回数据 流程图 为什…

SAP HCM 批量核算工资报错如何定位错误 (SAT分析错误)

导读 簇目录 (表 RGDIR) 不包含任何记录:今天遇到一个很奇怪的问题,簇目录 (表 RGDIR) 不包含任何记录,而且出现的问题没有具体到员工编号,所以处理问题非常棘手。今天分享下我的处理方式,以便大家遇到这类的问题不知道如何下手。…

服务器被暴力破解的一次小记录

1. 网络架构 家里三台主机,其他一台macmini 启用ollama运行大模型的服务,主机1用来部署一些常用的服务如:mysql, photoprism等,服务器作为网关部署docker, 并且和腾讯云做了内网穿透。服务器部署了1panel用来管理服务并且监控&…

3. 导入官方dashboard

官方dashboard:https://grafana.com/grafana/dashboards 1. 点击仪表板 - 新建 - 导入 注:有网络的情况想可以使用ID,无网络情况下使用仪表板josn文件 2. 在官方dashboard网页上选择符合你现在数据源的dashboard - 点击进入 3. 下拉网页选…

国家队出手!DeepSeek上线国家超算互联网平台!

目前,国家超算互联网平台已推出 DeepSeek – R1 模型的 1.5B、7B、8B、14B 版本,后续还会在近期更新 32B、70B 等版本。 DeepSeek太火爆了!在这个春节档,直接成了全民热议的话题。 DeepSeek也毫无悬念地干到了全球增速最快的AI应用。这几天,国内的云计算厂家都在支持Dee…

第6章 6.4 ASP.NET Core Web API各种技术及选择

6.4.1 控制器父类用哪个 6.2小节和6.3小节所演示的ASP.NET Core Web API 的控制器类都继承自ControllerBase,而6.1中MVC的控制器继承自Controller,Controller又继承自ControllerBase。 所以,一般情况下,编写的WebAPI控制器类继承…

【Linux】Ubuntu Linux 系统——Node.js 开发环境

ℹ️大家好,我是练小杰,今天星期五了,同时也是2025年的情人节,今晚又是一个人的举个爪子!! 🙂 本文是有关Linux 操作系统中 Node.js 开发环境基础知识,后续我将添加更多相关知识噢&a…

使用pyCharm创建Django项目

使用pyCharm创建Django项目 1. 创建Django项目虚拟环境(最新版版本的Django) 使用pyCharm的创建项目功能,选择Django,直接创建。 2. 创建Django项目虚拟环境(安装特定版本) 2.1创建一个基础的python项目 2.2 安装指定版本的D…

【前端框架】深入Vue 3组件开发:构建高效灵活的前端应用

一、引言 Vue 3作为一款流行的前端框架,其组件化系统是构建大型应用的核心。通过将应用拆分为多个可复用的组件,不仅能提高代码的可维护性与复用性,还能让开发团队进行高效的协作。本文将深入探讨Vue 3组件开发的各个方面,帮助开…

基于Python flask-sqlalchemy的SQLServer数据库管理平台

适应场景: 主要用于帮助DBA自动化很多日常工作,包括: 数据库状态监控 性能问题诊断 日志分析 自动巡检 问题告警 系统截图: main.py from flask import Blueprint, render_template, request, flash, redirect, url_for f…

npm运行Vue项目报错 error:0308010c:digital envelope routines::unsupported

大家好,我是 程序员码递夫。 问题 VSCode 运行Vue项目,提示错误: building 2/2 modules 0 activeError: error:0308010c:digital envelope routines::unsupported 解决方法 原因是 npm 高版本(大于17),对ssl的处理做了改进&…

计数排序

目录 计数排序原理和步骤: 完整代码实现: 计数排序原理和步骤: 当一段数据比较集中在一个范围,比如 98,95,98,91,90,93,94,97,93&…

Pythong 解决Pycharm 运行太慢

Pythong 解决Pycharm 运行太慢 官方给Pycharm自身占用的最大内存设低估了限制,我的Pycharm刚开始默认是256mb。 首先找到自己的Pycharm安装目录 根据合适自己的改 保存,重启Pycharm

fastadmin 接口请求提示跨域

问题描述 小程序项目,内嵌h5页面,在h5页面调用后端php接口,提示跨域。网上查找解决方案如下: 1,设置header // 在入口文件index.php直接写入直接写入 header("Access-Control-Allow-Origin:*"); header(&q…

NHANES指标推荐:DDA!

文章题目:Association of dietary decanoic acid intake with diabetes or prediabetes: an analysis from NHANES 2005-2016 DOI:10.3389/fnut.2024.1483045 中文标题:饮食中癸酸摄入量与糖尿病或糖尿病前期的关系:2005-2016 年 …