当前位置: 首页 > article >正文

Python读取阿里法拍网的html+解决登录cookie

 效果图

import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from lxml import etreedef get_taobao_auction_data():# 配置Chrome选项chrome_options = Options()chrome_options.add_argument('--headless')  # 无头模式chrome_options.add_argument('--disable-gpu')chrome_options.add_argument('--no-sandbox')chrome_options.add_argument('--disable-dev-shm-usage')chrome_options.add_argument('--disable-blink-features=AutomationControlled')chrome_options.add_argument('--disable-extensions')chrome_options.add_argument('--ignore-certificate-errors')chrome_options.add_argument('--window-size=1920,1080')# 设置Chrome浏览器路径chrome_options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe"# 设置User-Agentchrome_options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36')try:print("正在初始化Chrome驱动...")service = Service(ChromeDriverManager().install())driver = webdriver.Chrome(service=service, options=chrome_options)print("Chrome驱动初始化成功")# 设置页面加载超时时间driver.set_page_load_timeout(30)# 访问目标网页url = "https://zc-paimai.taobao.com/wow/pm/default/pc/zichansearch?fcatV4Ids=[%22206067201%22]&corp_type=[%226%22]&structFieldMap={%22corp_type%22:[%226%22]}&page=1"driver.get(url)# 等待页面加载print("等待页面加载...")time.sleep(10)# 执行JavaScript滚动页面driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")time.sleep(2)# 获取页面内容page_source = driver.page_source# 保存原始响应到文件with open('taobao_auction.html', 'w', encoding='utf-8') as f:f.write(page_source)print("页面内容已保存到 taobao_auction.html")# 使用lxml解析HTMLhtml = etree.HTML(page_source)# 解析拍卖项目 - 更新XPath以匹配实际结构items = html.xpath('//div[contains(@style, "border: 1px solid rgb(230, 230, 230)")]')if items:print(f"\n找到 {len(items)} 个拍卖项目")for item in items:try:# 提取详情链接detail_url = item.xpath('.//a/@href')detail_url = "https:" + detail_url[0] if detail_url else "无链接"# 提取图片URLimg_url = item.xpath('.//img[contains(@style, "object-fit: cover")]/@src')img_url = "https:" + img_url[0] if img_url else "无图片"# 提取标题title = item.xpath('.//span[contains(@class, "text") and contains(@style, "font-size: 16px")]/@title')title = title[0].strip() if title else "无标题"# 提取当前价格current_price = item.xpath('.//div[contains(text(), "当前价")]/following-sibling::div//span[contains(@style, "font-size: 24px")]/text()')current_price = current_price[0].strip() if current_price else "无价格"# 提取评估价eval_price = item.xpath('.//div[contains(text(), "评估价")]/following-sibling::span[2]/text()')eval_price = eval_price[0].strip() if eval_price else "无评估价"# 提取拍卖状态status = item.xpath('.//div[contains(@style, "background: rgb(235, 0, 69)")]/text()')status = status[0].strip() if status else "无状态"# 提取围观次数views = item.xpath('.//span[contains(text(), "次围观")]/preceding-sibling::span/text()')views = views[0].strip() if views else "0"# 提取报名人数signups = item.xpath('.//span[contains(text(), "人报名")]/preceding-sibling::span/text()')signups = signups[0].strip() if signups else "0"print("\n拍卖项目信息:")print(f"标题: {title}")print(f"当前价: {current_price}")print(f"评估价: {eval_price}")print(f"状态: {status}")print(f"围观次数: {views}")print(f"报名人数: {signups}")print(f"图片URL: {img_url}")print(f"详情链接: {detail_url}")print("-" * 50)except Exception as e:print(f"解析项目时出错: {e}")continueelse:print("未找到拍卖项目,请检查页面结构")print("请查看保存的HTML文件以分析页面结构")except Exception as e:print(f"发生错误: {e}")finally:# 关闭浏览器try:driver.quit()except:passif __name__ == "__main__":get_taobao_auction_data()

获取登录cookie

import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from lxml import etree
import redef get_auction_detail():# 1. 采集页面并保存html(如已有可跳过)chrome_options = Options()chrome_options.add_argument('--disable-gpu')chrome_options.add_argument('--no-sandbox')chrome_options.add_argument('--disable-dev-shm-usage')chrome_options.add_argument('--disable-blink-features=AutomationControlled')chrome_options.add_argument('--disable-extensions')chrome_options.add_argument('--ignore-certificate-errors')chrome_options.add_argument('--window-size=1920,1080')chrome_options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe"chrome_options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36')try:print("正在初始化Chrome驱动...")service = Service(ChromeDriverManager().install())driver = webdriver.Chrome(service=service, options=chrome_options)print("Chrome驱动初始化成功")driver.set_page_load_timeout(30)print("访问淘宝首页...")driver.get("https://www.taobao.com")time.sleep(3)print("请在浏览器中手动登录淘宝...")input("登录完成后请按回车键继续...")cookies = driver.get_cookies()print("已获取登录Cookie")url = "https://sf-item.taobao.com/sf_item/903309584546.htm"print(f"正在访问拍卖详情页: {url}")driver.get(url)print("等待页面加载...")time.sleep(10)driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")time.sleep(2)page_source = driver.page_sourcewith open('auction_detail.html', 'w', encoding='utf-8') as f:f.write(page_source)print("页面内容已保存到 auction_detail.html")except Exception as e:print(f"采集页面时发生错误: {e}")finally:try:driver.quit()except:pass# 2. 解析本地auction_detail.html,提取全部关键信息print("\n正在解析 auction_detail.html ...")with open('auction_detail.html', 'r', encoding='utf-8') as f:html = etree.HTML(f.read())def get_first(xpath_expr):res = html.xpath(xpath_expr)return res[0].strip() if res else ''# 标题title = get_first('//title/text()')# 当前价current_price = get_first('//span[contains(@class,"pm-current-price")]/em/text()')if not current_price:current_price = get_first('//span[contains(@class,"J_Price")]/em/text()')# 变卖价、保证金、加价幅度、评估价、变卖周期、延时周期、竞价规则(表格)def get_table_value(key):td = html.xpath(f'//table//span[contains(text(),"{key}")]/../../following-sibling::td[1]//span[contains(@class,"family-tahoma")]/text()')if not td:# 兼容" : "后直接文本td = html.xpath(f'//table//span[contains(text(),"{key}")]/../following-sibling::div//span[contains(@class,"family-tahoma")]/text()')if not td:# 兼容" : "后直接文本(无span)td = html.xpath(f'//table//span[contains(text(),"{key}")]/../../following-sibling::td[1]//text()')return td[0].strip() if td else ''sell_price = get_table_value('变卖价')deposit = get_table_value('保证金')increase = get_table_value('加价幅度')eval_price = get_table_value('评估价')sell_period = get_table_value('变卖周期')delay_period = get_table_value('延时周期')rule = ''rule_td = html.xpath('//table//span[contains(text(),"竞价规则")]/../../following-sibling::td[1]//span/text()')if rule_td:rule = rule_td[0].strip()else:# 兼容" : "后直接文本rule = get_first('//table//span[contains(text(),"竞价规则")]/../following-sibling::div//span/text()')# 主办法院court = get_first('//div[@class="unit-org-content"]/p/text()')# 拍卖公司及联系人company = get_first('//em[contains(@class,"contact-unit-person")]/text()')# 联系方式(手机号)phone = get_first('//span[@class="c-title" and contains(text(),"手机")]/following-sibling::span[@class="c-text"]/text()')# 公告链接notice_link = html.xpath('//a[contains(@class,"view-ano")]/@href')notice_link = notice_link[0] if notice_link else ''if notice_link and not notice_link.startswith('http'):notice_link = 'https:' + notice_linkprint("\n拍卖详情信息:")print(f"标题: {title}")print(f"当前价: {current_price}")print(f"变卖价: {sell_price}")print(f"保证金: {deposit}")print(f"加价幅度: {increase}")print(f"评估价: {eval_price}")print(f"变卖周期: {sell_period}")print(f"延时周期: {delay_period}")print(f"竞价规则: {rule}")print(f"主办法院: {court}")print(f"拍卖公司及联系人: {company}")print(f"联系方式: {phone}")print(f"公告链接: {notice_link}")print("-" * 50)if __name__ == "__main__":get_auction_detail() 

相关文章:

Python读取阿里法拍网的html+解决登录cookie

效果图 import time from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager from lxml import etreedef get_taobao_auct…...

electron-vite串口通信

一、构建项目后,安装“串口通信库” npm install serialport二、设置 npm install --save-dev electron-rebuild ./node_modules/.bin/electron-rebuild 注意:如果执行报错以下问题 1、未配置python变量 2、没有Microsoft Visual Studio BuildTools 3…...

中山大学美团港科大提出首个音频驱动多人对话视频生成MultiTalk,输入一个音频和提示,即可生成对应唇部、音频交互视频。

由中山大学、美团、香港科技大学联合提出的MultiTalk是一个用于音频驱动的多人对话视频生成的新框架。给定一个多流音频输入和一个提示,MultiTalk 会生成一个包含提示所对应的交互的视频,其唇部动作与音频保持一致。 相关链接 论文:https://a…...

Maven的配置与运行

maven配置国内镜像 <!-- # %MAVEN_HOME%\conf\settings.xml # 找到 <mirrors> 标签&#xff0c;添加&#xff1a; --> <mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>阿里云公共仓库</name><url>htt…...

MySQL 迁移至 Docker ,删除本地 mysql

macOS 的删除有大量的配置文件和相关数据文件要删除&#xff0c;如果 update mysql 那么数据更杂。 停止 MYSQL 使用 brew 安装&#xff0c;则 brew services stop mysql 停止 mysql 。 如果没有使用 brew 安装&#xff0c;则 sudo /usr/local/mysql/support-files/mysq…...

redis分片集群架构

主从集群解决高并发&#xff0c;哨兵解决高可用问题。但是任然有两个问题没有解决&#xff1a;1海量数据存储问题&#xff1b;2高并发写的问题&#xff08;如果服务中有大量写的请求&#xff09; 那就可以采用分片集群架构解决这些问题 分片集群特征 分片集群中有多个master…...

关于物联网的基础知识(一)

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///计算机爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于物联网的基础知识&#xff08;一&a…...

浏览器后台服务 vs 在线教育:QPS、并发模型与架构剖析

本文深入分析浏览器后台服务与在线教育平台在高并发场景下的架构设计差异&#xff0c;涵盖 QPS&#xff08;每秒请求数&#xff09;承压能力、服务模型、数据一致性、容灾机制等多个维度&#xff0c;力图为系统架构师和后端工程师提供实战参考。 一、什么是高并发场景&#xff…...

电脑商城--用户注册登录

用户注册 1 用户-创建数据表 1.使用use命令先选中store数据库。 USE store; 2.在store数据库中创建t_user用户数据表。 CREATE TABLE t_user (uid INT AUTO_INCREMENT COMMENT 用户id,username VARCHAR(20) NOT NULL UNIQUE COMMENT 用户名,password CHAR(32) NOT NULL COMME…...

Riverpod与GetX的优缺点对比

Riverpod 与 GetX 的优缺点对比 在 Flutter 开发领域,Riverpod 和 GetX 都是备受关注的状态管理与依赖注入框架,它们各有优劣,适用于不同的开发场景。以下从多个维度详细对比二者的优缺点。 一、Riverpod 的优缺点 (一)优点 架构清晰,数据流向明确:基于 Provider 模…...

Three.js怎么工作的?

Three.js 是怎么工作的&#xff1f; Three.js 的核心工作是&#xff1a; 构建一个虚拟的 3D 世界&#xff08;Scene&#xff09; 模拟摄像机视角&#xff08;Camera&#xff09; 用 WebGL 把这个场景“渲染成一张图片” 把这张图片画在 canvas 上 &#x1f449; 所以 Three…...

LangChain面试内容整理-知识点1:LangChain架构与核心理念

LangChain 是一个用于构建基于大型语言模型(LLM)的应用的框架,其架构采用模块化设计,核心理念是将语言模型与外部工具、数据源相结合,以实现复杂任务的分解与执行medium.com。整个框架可以理解为一系列可组合的组件,包括链(Chain)、智能体(Agent)、工具(Tool)和LLM…...

双面沉金线路板制作流程解析:高可靠性PCB的核心工艺

在高端电子制造领域&#xff0c;双面沉金&#xff08;ENIG&#xff09;线路板因其优异的焊接性能、抗氧化能力和信号完整性&#xff0c;已成为5G通信、医疗设备和汽车电子等领域的首选。本文将深入解析其制作流程的关键环节&#xff0c;帮助工程师更好地理解这一核心工艺。 一、…...

什么是梯度磁场

梯度磁场是叠加在均匀主磁场&#xff08;如MRI中的静磁场B₀&#xff09;上的一种特殊磁场&#xff0c;其强度会沿着特定方向&#xff08;如X、Y或Z轴&#xff09;呈线性变化。这种磁场在磁共振成像和粒子控制等领域发挥着关键作用&#xff0c;主要用于实现空间位置的精确编码和…...

从零开始的python学习(七)P102+P103+P104+P105+P106+P107

本文章记录观看B站python教程学习笔记和实践感悟&#xff0c;视频链接&#xff1a;【花了2万多买的Python教程全套&#xff0c;现在分享给大家&#xff0c;入门到精通(Python全栈开发教程)】 https://www.bilibili.com/video/BV1wD4y1o7AS/?p6&share_sourcecopy_web&v…...

Linux--进程的调度

1.进程切换 CPU上下⽂切换&#xff1a;其实际含义是任务切换, 或者CPU寄存器切换。当多任务内核决定运⾏另外的任务时, 它保存正在运⾏任务的当前状态, 也就是CPU寄存器中的全部内容。这些内容被保存在任务⾃⼰的堆栈中, ⼊栈⼯作完成后就把下⼀个将要运⾏的任务的当前状况从该…...

Hadolint:Dockerfile 语法检查与最佳实践验证的终极工具

在容器化应用开发的浪潮中,Dockerfile 作为构建 Docker 镜像的核心配置文件,其质量直接影响着应用的安全性、稳定性和可维护性。然而,随着项目复杂度的增加,手动检查 Dockerfile 不仅耗时,还容易遗漏潜在问题。今天,我要向大家介绍一款强大的工具——Hadolint,它将彻底改…...

Python爬虫实战:研究Hyper 相关技术

一、项目概述 本项目展示了如何结合 Python 的异步编程技术与 Hyper 框架开发一个高性能、可扩展的网络爬虫系统。该系统不仅能够高效地爬取网页内容,还提供了 RESTful API 接口,方便用户通过 API 控制爬虫的运行状态和获取爬取结果。 二、系统架构设计 1. 整体架构 系统采…...

基于langchain的简单RAG的实现

闲来无事&#xff0c;想研究一下RAG的实现流程&#xff0c;看网上用langchain的比较多&#xff0c;我自己在下面也跑了跑&#xff0c;代码很简单&#xff0c;以次博客记录一下&#xff0c;方便回顾 langchain LangChain 是一个基于大型语言模型&#xff08;LLM&#xff09;开发…...

VmWare Ubuntu22.04 搭建DPDK 20.11.1

一、开发环境 Ubuntu 版本 二、增加虚拟机的网卡 给虚拟机增加1个网卡,加上原来的网卡,一共2个 网络适配器作为 ssh 连接的网卡,网络适配器2作为 DPDK 运行的网卡。 三、NAT模式简介 这里待补充,网上都是那一张图,看不懂 四、使网卡名称从0开始命名 进入管理员权限 s…...

selenium-自动更新谷歌浏览器驱动

1、简介 selenium最初是一个自动化测试工具&#xff0c;而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题&#xff0c;因为有些网页数据是通过JavaScript动态加载的。selenium本质是通过驱动浏览器&#xff0c;完全模拟浏览器的操作&#xff0c;比如输入…...

34、协程

在Linux系统中&#xff0c;协程是一种轻量级的线程&#xff0c;它们允许在多个任务之间切换&#xff0c;而不需要操作系统的线程调度。协程可以分为有栈协程和无栈协程&#xff0c;以及对称协程和非对称协程。 有栈协程 有栈协程每个协程都有自己的栈空间&#xff0c;允许协程…...

Apache POI操作Excel详解

Maven依赖 <!-- 核心库&#xff08;支持.xls&#xff09; --> <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId> </dependency><!-- 支持.xlsx格式 --> <dependency><groupId>org.a…...

Docker容器部署elasticsearch8.*与Kibana8.*版本使用filebeat采集日志

第 1 步&#xff1a;使用 Docker Compose 部署 Elasticsearch 和 Kibana 首先&#xff0c;我们需要创建一个 docker-compose.yml 文件来定义和运行 Elasticsearch 和 Kibana 服务。这种方式可以轻松管理两个容器的配置和网络。 创建 docker-compose.yml 文件 在一个新的文件夹…...

OpenCV CUDA模块图像处理------双边滤波的GPU版本函数bilateralFilter()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 该函数在 GPU 上执行双边滤波操作&#xff0c;是一种非线性平滑滤波器&#xff0c;能够在 保留边缘的同时去除噪声。 函数原型 void cv::cuda:…...

华为手机开机卡在Huawei界面不动怎么办?

遇到华为手机卡在启动界面&#xff08;如HUAWEI Logo界面&#xff09;的情况&#xff0c;可依次尝试以下解决方案&#xff0c;按操作复杂度和风险由低到高排序&#xff1a; &#x1f527; 一、强制重启&#xff08;优先尝试&#xff09; 1.通用方法‌ 长按 ‌电源键 音量下键‌…...

并行硬件环境及并行编程

文章目录 A1. (并行编程 基于的)硬件环境 的 基本模型A2. 特定的硬件实现B1. 并行编程基本模型与编程技术✅ 并行编程的一般流程**第一阶段&#xff1a;基于“编程直觉模型”设计程序****第二阶段&#xff1a;程序编译并部署到实际硬件** B2.特定的 硬件环境下的 并行编程 A1. …...

ORM框架(SQLAlchemy 与 Tortoise )

注&#xff1a;本文是python的学习笔记&#xff1b;不是教程&#xff01;不是教程&#xff01;内容可能有所疏漏&#xff0c;欢迎交流指正。 框架概述 什么是ORM&#xff1f; ORM&#xff08;Object-Relational Mapping&#xff0c;对象关系映射&#xff09;是一种编程技术&a…...

go语言map扩容

map是什么&#xff1f; ​在Go语言中&#xff0c;map是一种内置的无序key/value键值对的集合&#xff0c;可以根据key在O(1)的时间复杂度内取到value&#xff0c;有点类似于数组或者切片结构&#xff0c;可以把数组看作是一种特殊的map&#xff0c;数组的key为数组的下标&…...

安全访问家中 Linux 服务器的远程方案 —— 专为单用户场景设计

在现代远程办公与频繁差旅的背景下&#xff0c;许多人需要从外地访问家中的 Linux 文件服务器&#xff0c;以获取重要文件。在涉及敏感数据&#xff08;如客户资料、财务信息&#xff09;时&#xff0c;数据的安全性成为首要考虑因素。以下内容将聚焦于如何在仅有一台笔记本电脑…...