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

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()

输出的结果如下:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++ Primer 返回值和return语句

欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…

【Java集合二】HashMap 详解

一、简介 1.1 概述 JDK1.8之前:HashMap使用数组链表实现,即使用链表处理冲突,同一hash值的节点都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。 JDK1.8…

3、树莓派5 安装VNC查看器 开启VNC服务器

在前序文章中( 2、树莓派5第一次开机),可以使用三种方式开机,其中使用网线及wifi的方式均需要使用到VNC查看器进行远程桌面控制,本文将介绍如何下载安装并配置及使用VNC查看器及服务器,对前序文章做一些补充…

Flutter 常见布局模型

Flutter的常见的布局模型有容器(Container)、弹性盒子布局(Flex、Row、Column、Expanded)、流式布局(Wrap、Flow)、层叠布局(Stack、Position)、滚动布局(ListView、Grid…

Java类与类的关系

类与类之间最常见的关系主要有以下三种: 依赖(或uses–a)聚合(或has–a)继承(或is–a) 依赖 依赖关系是类中最常见的关系,例如订单类(order)需要访问用户账…

神经网络的学习 求梯度

import sys, ossys.path.append(os.pardir) import numpy as npfrom common.functions import softmax, cross_entropy_error from common.gradient import numerical_gradient# simpleNet类 class simpleNet:def __init__(self):self.W np.random.rand(2, 3) # 随机形状为2*…

架构——Nginx功能、职责、原理、配置示例、应用场景

以下是关于 Nginx 的功能、职责、原理、配置示例、应用场景及其高性能原因的详细说明: 一、Nginx 的核心功能 1. 静态资源服务 功能:直接返回静态文件(如 HTML、CSS、JS、图片、视频等)。配置示例:server {listen 80…

如何在 Mac 上解决 Qt Creator 安装后应用程序无法找到的问题

在安装Qt时,遇到了一些问题,尤其是在Mac上安装Qt后,发现Qt Creator没有出现在应用程序中。通过一些搜索和操作,最终解决了问题。以下是详细的记录和解决方法。 1. 安装Qt后未显示Qt Creator 安装完成Qt后,启动应用程…

优选算法《位运算》

在本篇当中我们将会复习之前在C语言阶段学习的各种位运算,并且在复习当中将再补充一些在算法题当中没有进行总结的位运算的使用方法,再总结完常见的位运算使用方法之和接下来还是和之前的算法篇章一样通过几道算法题来对这些位运算的方法技巧进行巩固。在…

应对DeepSeek总是服务器繁忙的解决方法

最近由于访问量过大,DeepSeek服务器官网经常弹出:“服务器繁忙,请稍后再试”的提示,直接卡成PPT怎么办?服务器繁忙直接看到视觉疲劳: 解决DeepSeek卡顿问题 DeepSeek使用卡顿问题,是因为访问量…

docker容器部署jar应用导入文件时候报缺少字体错误解决

如题,在导入文件时候报错如下: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11FontManager 经查是缺少对应字体,解决办法有两张: 第一种:…

工作室如何实现一机一IP

对于工作室而言,多开游戏账号却是其运营模式的核心需求。他们通过大量囤积金币、资源,再将其变现来获取利润。在这种运营模式下,账号数量直接关系到工作室的收益,所以解决 IP 问题就成了手游工作室发展道路上的首要难题&#xff0…

使用grafana v11 建立k线(蜡烛图)仪表板

先看实现的结果 沪铜主力合约 2025-02-12 的1分钟k线图 功能介绍: 左上角支持切换主力合约,日期,实现动态加载数据. 项目背景: 我想通过前端展示期货指定品种某1天的1分钟k线,类似tqsdk 的web_gui 生成图形化界面— TianQin Python SDK 3.7.8 文档 项目架构: 后端: fastap…

20250214在ubuntu20.04下使用obs studio录制外挂的1080p的USB摄像头【下载安装】

20250214在ubuntu20.04下使用obs studio录制外挂的1080p的USB摄像头 2025/2/14 9:10 缘起:笔记本电脑在ubuntu20.04下使用Guvcview录制自带的摄像头,各种问题。 1、降帧率。WIN10/11自带的相机应用可以满速30fps,马上重启到ubuntu20.04&#…

【开源免费】基于Vue和SpringBoot的旅游管理系统(附论文)

本文项目编号 T 229 ,文末自助获取源码 \color{red}{T229,文末自助获取源码} T229,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…

基于Python的Optimal Interpolation (OI) 方法实现

前言 Optimal Interpolation (OI) 方法概述与实现 Optimal Interpolation (OI) 是一种广泛应用于气象学、海洋学等领域的空间数据插值方法。该方法通过结合观测数据与模型预测数据,最小化误差方差,从而实现对空间数据的最优插值。以下是OI方法的一般步骤…

从无序到有序:上北智信通过深度数据分析改善会议室资源配置

当前企业普遍面临会议室资源管理难题,预约机制不完善和临时会议多导致资源调度不合理,既有空置又有过度拥挤现象。 针对上述问题,上北智信采用了专业数据分析手段,巧妙融合楼层平面图、环形图、折线图和柱形图等多种可视化工具&a…

CAS单点登录(第7版)9.属性

如有疑问,请看视频:CAS单点登录(第7版) 属性 属性定义 概述 属性定义 从身份验证或属性存储库源获取和解析 CAS 中属性的定义时,往往使用其名称进行定义和引用,而无需任何其他元数据或修饰。例如&#…

Halo 配置QQ邮箱验证教程

一、准备工作 获取QQ邮箱授权码 登录QQ邮箱网页版(https://mail.qq.com)。 点击顶部导航栏 "设置" → "账户" → 找到 "POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务"。 点击 "生成授权码",按页面…

双轴伺服电机驱动控制器AGV、AMR专用双伺服电机驱动控制器解决方案

工业机器人数控机床XY机械手双轴机器人堆垛机专用双轴伺服电机驱动控制器48V 14ARMS带有STO功能,隔离高压CAN/RS485/USB通讯支持编码器和霍尔输入 双伺服电机驱动控制器TMCM2611功能介绍 集成2个伺服电机的控制和驱动于一体供电电压48V,驱动电流14A RM…