用python来爬取某鱼的商品信息(1/2)

news2025/3/15 14:24:11

目录

前言

第一大难题——找到网站入口

曲线救国

 模拟搜索

第二大难题——登录

提一嘴

登录cookie获取

第一种

第二种

 第四大难题——无法使用导出的cookie

 原因

解决办法

最后

出现小问题

总结


前言

本章讲理论,后面一节讲代码

拿来练练手的,练练selenium包,实战一下

(本来想拿来练手的,没想到他喵的有挺多防爬的,直接开局就困难难度我靠,凸(艹皿艹 ))

找到可以爬取的网站

第一大难题——找到网站入口

但是咸鱼官方的网站已经关闭了(开局就不利)

闲鱼.淘宝二手 - 轻松卖闲置,放心淘二手闲鱼.淘宝二手是一个社区化的二手闲置交易市场,不仅支持各种同城及线上的担保交易,更安全,同时还有最专业的放心购二手商家,让你轻松在这买卖二手闲置。https://goofish.com/

 GG

曲线救国

但是后面发现可以通过淘宝手机版网页版的入口直接进入咸鱼网页版的入口(反正都是爬取怎么进的不重要啦!!!)

链接放着里了,怎么进别问我了

淘宝淘宝网 - 亚洲较大的网上交易平台,提供各类服饰、美容、家居、数码、话费/点卡充值… 数亿优质商品,同时提供担保交易(先收货后付款)等安全交易保障服务,并由商家提供退货承诺、破损补寄等消费者保障服务,让你安心享受网上购物乐趣!https://main.m.taobao.com/index.html

 好了第一大难题(找到网页版入口解决了)

 模拟搜索

接下来就是利用python的selenium包模拟点击

右键搜索款点击检查就可以定位到该元素的xpath的路径(新版的selenium有许多不同的用法我会在下一章中进行代码实现,这一章主要讲解理论

 然后在python代码中输入你要搜索的文字内容再回车即可

第二大难题——登录

在这一个咸鱼网页版中,你必须要登录才可以

 这样你就要先登录才可以访问网页

最大难题——登录界面滑块验证

提一嘴

在这个登录页面中,登录页面是iframe内嵌入其中的页面的

所以你无法直接定位到登录框(我搞了好久反应过来,真的离谱!!)

登录cookie获取

所以你有两种选择

第一种

直接在python中打开登录页面进入登录页面然后登录直接用selenium库中的get_cookie获取cookie并保存

登录https://passport.goofish.com/mini_login.htm?ttid=h5%40iframe&redirectType=iframeRedirect&returnUrl=%2F%2Fh5.m.goofish.com%2Fapp%2Fvip%2Fh5-webapp%2Flib-login-message.html%3Forigin%3Dhttps%253A%252F%252Fh5.m.goofish.com&appName=xianyu&appEntrance=web&isMobile=true想法相对来说不这么绕,但是遗憾的是我无法登录(因为登录有滑块验证,我是几乎过不了的,手动都不行)

第二种

在正常网页中登入之后用浏览器插件提取出来

我用的是cookie editor 

在网页版中正常登录可以过滑块验证

之后用插件复制出json文件,并且进行粘贴

 第四大难题——无法使用导出的cookie

使用代码导入是报错

 assert cookie_dict[‘sameSite‘] in [‘Strict‘, ‘Lax‘] AssertionError()

 原因

提取出来的cookie中samesite的值不为strict以及lax两种中的一种,他就会报错

解决办法

只需要在json字典中把samesite的值全部改为Strict即可

最后

然后添加cookie然后刷新界面就可以发现搜索结果出来了

出现小问题

由于然后短时间内多次请求依旧会有阴间的滑块验证,所以我推荐设置好后半小时爬取一次即可

总结

这一次实战经历真的让我遇到了selenium许多奇奇怪怪的反爬手段,也是让我可以大幅度提升自己实战经验的一个经历,前前后后排bug,绕反爬,这一个项目打了整整两天。累die

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

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

相关文章

【装个系统】教你安装全新Windows 11 全程展示,精彩无限

跟我一起,穿越时间! Windows 11是微软最新的操作系统,相信已经没有人不知道了,但是很多人还不知道如何安装Windows 11,甚至不知道如何下载微软原版的安装文件, 别急,如果你没有安装文件&#…

纯C#使用Visionpro工具2 操作斑点工具

结果图 通过斑点工具中非圆性找取圆特征 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.For…

7年经验之谈 —— 软件测试工程师,如何工资过万?

对于测试工程师这个岗位而言,月薪过万并不是一件难事,笔者毕业时的第一份工作便拿到了7K的薪资,如今入职两年,薪资也堪堪过了万元大关。 我周边有不少想要入行这一行业的小伙伴都对我目前的工作和生活状态好奇,在此写一…

系列六、Redis中的五大数据类型及相关操作

一、五大数据类型 String类型、List类型、Set类型、ZSet类型、hash类型。 二、String类型 2.1、内存储存模型 2.2、常用操作命令 三、List类型 3.1、概述 list列表,相当于Java中的list集合。特点:元素有序 且 可以重复。 3.2、内存存储模型 3.3、常用…

Arcgis中POI找到建筑面内距离最近的标准地址通过模型构建器来实现

背景 之前写过一篇文章 Arcgis通过矢量建筑面找到POI对应的标准地址 这里面的大致思路跟本篇文章是类似的,不过上一篇文章有部分有瑕疵,就是在POI去找建筑面内的标准地址时,找到的虽然是建筑面内的,但是不一定是距离最近的&#…

Elasticsearch-查询

一、查询和过滤 1.1 相关性分数 :_score 默认情况下,Elasticsearch 按相关性得分对匹配的搜索结果进行排序,相关性得分衡量每个文档与查询的匹配程度。 相关性分数是一个正浮点数,在搜索的数据字段中返回。_score越高&#xff0…

KAFKA第二课之生产者(面试重点)

生产者学习 1.1 生产者消息发送流程 在消息发送的过程中,涉及到了两个线程——main线程和Sender线程。在main线程中创建了一个双端队列RecordAccumulator。main线程将消息发送给RecordAccumulator,Sender线程不断从RecordAccumulator中拉取消息发送到K…

vant van-tabs van-pull-refresh van-list 标签栏+上拉加载+下拉刷新

<template><div class"huibj"><div class"listtab"><!--顶部导航--><div class"topdh"><topnav topname"余额明细"></topnav></div><!--Tab 标签--><van-tabs v-model"…

126、高频Redis面试题:如何保证Redis和数据库数据一致性

高频Redis面试题:如何保证Redis和数据库数据一致性 缓存用法如何更新缓存先更新缓存&#xff0c;再更新数据库先更新数据库&#xff0c;再更新缓存先删除缓存&#xff0c;再更新数据库延时双删&#xff08;删除缓存&#xff0c;更新数据库&#xff0c;再延时删除缓存&#xff0…

Linux 内存管理新特性 - Memory folios 解读 | 龙蜥技术

本文内容基于 Linux 5.16&#xff0c;folio 基础部分开始合入。截止到目前 Linux 6.5&#xff0c;folio 已经有很大进展&#xff0c;会在后续文章中介绍。作者&#xff1a;徐宇。 01 folio [ˈfoʊlioʊ] 是什么 引用 LWN: Memory folios &#xff1a;https://lwn.net/Articl…

基于Selenium技术方案的爬取界面内容实践

1. 定位页面&#xff08;多窗口切换&#xff09; WebDriver提供了处理多个窗口的能力&#xff0c;这是通过使用“WebDriver.switchTo.window()”方法来切换到已知名称的窗口来实现的。如果名称未知&#xff0c;您可以使用“WebDriver.getWindowHandles()”获取已知窗口列表。您…

苍穹外卖项目解读(五 完结) POI Easyexcel excel操作

前言 HM新出springboot入门项目《苍穹外卖》&#xff0c;笔者打算写一个系列学习笔记&#xff0c;“苍穹外卖项目解读”&#xff0c;内容主要从HM课程&#xff0c;自己实践&#xff0c;以及踩坑填坑出发&#xff0c;以技术&#xff0c;经验为主&#xff0c;记录学习&#xff0…

Java课题笔记~ JSP内置对象

(1)九个内置对象 jsp的内置对象&#xff1a;JSP内置对象是不需要声明和创建就可以在JSP页面脚本中使用的成员变量。 九个内置对象&#xff1a; 1.out对象 在JSP页面中&#xff0c;经常需要向客户端发送文本内容&#xff0c;这时&#xff0c;可以使用out对象来实现。out对象…

引入三阶失真的非线性放大器的模拟输出及使用中值滤波器去除峰值研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【Spring】-Spring中Bean对象的存取

作者&#xff1a;学Java的冬瓜 博客主页&#xff1a;☀冬瓜的主页&#x1f319; 专栏&#xff1a;【Framework】 主要内容&#xff1a;往spring中存储Bean对象的三大方式&#xff1a;XML方式(Bean标签)&#xff1b;五大类注解&#xff1b;方法注解。从spring中取对象的两种方式…

穿越未来:探索虚拟现实科技的未来前景

虚拟现实&#xff08;Virtual Reality&#xff0c;简称VR&#xff09;科技&#xff0c;正如一颗崭新的明星&#xff0c;迅猛崛起&#xff0c;为人类带来前所未有的体验和想象空间。随着科技的飞速发展&#xff0c;VR 科技的未来充满了无限的可能性&#xff0c;正将我们引向一个…

【LNMP(分布式)】

目录 一、LNMP是什么 二、实际步骤 1.启用虚拟机 1.1 启动三台虚拟机分别命名为nginx&#xff0c;mysql&#xff0c;php 1.2 分别配置基础环境 1.3 测试外网连通性 2.更新源 3.安装nginx并配置 3.1 下载nginx源码包并安装 3.2 配置nginx 4.安装mysql并配置 4.1 安装…

在.NET 6.0中自定义接口路由

在本文中&#xff0c;我们将讨论ASP.NET Core中的新路由。我们将了解什么是接口(endpoints)路由&#xff0c;它是如何工作的&#xff0c;它在哪里使用&#xff0c;以及如何创建自己的路由。 本文主题&#xff1a; 探索接口路由创建自定义接口创建更复杂的接口 名词定义&#…

029 - integer types 整数类型

MySQL支持SQL标准整数类型 INTEGER&#xff08;或INT&#xff09;和 SMALLINT。作为一个可扩展标准&#xff0c;MySQL也支持整数类型 TINYINT&#xff0c;MEDIUMINT和 BIGINT。下表显示了每种整数类型所需的存储空间和范围。 表11.1 MySQL支持的整数类型的必需存储和范围 类型…

日常问题——idea工具中SpringBoot使用@AutoWriter 爆红

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;日常BUG、BUG、问题分析☀️每日 一言 &#xff1a;存在错误说明你在进步&#xff01; 一、问题描述 使用AutoWrited注解注入Bean时&#xff0c;变量下面有红线&#xff0c;但是不影响运行。 二…