闲鱼java系统_java爬取闲鱼商品信息(一)

本文介绍如何使用Java爬取闲鱼网站上的商品信息。目标是抓取商品数据,并实现关键词价格提醒功能。首先分析闲鱼商品页面URL,发现catid参数决定分类,利用正则表达式提取URL和类别名,存储在HashMap中,为后续爬取建立起点队列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

闲鱼真是一个很神奇的地方,= =能让我等学生狗不用花很多钱就能体验科技的乐趣,当然,前提是别翻车。

好了,这当然是题外话,这阵子总结了自己学习的一些技能,就写一个对闲鱼的数据抓取来练练手。

预计达到的目标:第一步,将闲鱼上发布的商品信息爬取到本地。

第二步,实现关键词价格域提醒,比如设置想要找一个5000以下的IPHONE X,可爱的爬虫在闲鱼抓信息的时候,当发现匹配的商品的时候,就会给你疯狂打call,好吧,给你发邮件之类的。

首先,我们看一下闲鱼闲置商品的网址:

https://s.2.taobao.com/list/list.htm?spm=2007.1000337.0.0.6e0f2979exfsD7&oon=10&st_trust=1&ist=1

样子呢是这样的

732fd4ba6c0526467c354a8a5733af6d.png

可以看出来女装鞋子什么的占了很大一部分,= = 看来都是女装大佬。

好了,从哪入手呢,当然是从这么多的分类入手了。我们都可以很轻松的发现,每个分类的链接相似度很高,大家可以自己看看。

分类的不同主要是取决于URL的catid参数。

很明显,URL和分类名称形成了一中key-value的对应关系,在程序执行过程中我们可以将其存储在hashmap中

由于hashmap的特性,就算抓取算法有问题导致重复也不会产生很大影响。

我们查看一下网页的源码,

<think>好的,我现在需要帮助用户了解中的_m_h5_tk参的用途和生成方法。首先,我得回忆下之前用户提供的引用内容,特别是引用[2]和[4],里面提到了这个参是cookie中的部分,用于生成sign值,而sign值用于请求的签名验证。 首先,确定用途。根据引用[2],_m_h5_tk是作为d.token参参与sign值的生成,而sign值用于接口请求时的签名,可能是为了防止CSRF攻击或者确保请求的合法性。另外,引用[4]提到sign值是通过字符串拼接后加密得到的,猜测_m_h5_tk可能是个动态令牌,用来增加签名的复杂性,防止重放攻击。 然后是生成方法。引用[2]提到这个参在cookie中存在,并且会定时失效,这说明它可能由服务器生成并下发到客户端。通常这类参可能包含时间戳、用户会话信息等,结合服务器端的密钥进行哈希生成。用户可能需要通过模拟登录或者保持会话来获取这个参,但由于其定时失效,可能需要定期更新。 另外,引用[4]中讨论了sign的生成涉及多个参,包括时间戳、appkey等,而_m_h5_tk作为其中个参,可能与其他参拼接后进行MD5或其他加密算法处理。需要注意的是,生成sign的具体方法可能需要逆向分析JavaScript代码,找到加密函的位置,如引用[4]提到的i函。 用户可能需要具体的生成步骤,比如如何从cookie中获取_m_h5_tk,如何拼接参,使用哪种加密算法等。不过,由于的反爬机制较强,直接逆向可能会遇到混淆或加密的代码,需要耐心分析。 总结下来,回答应包括用途和生成方法两部分,结合引用中的信息,说明_m_h5_tk在签名中的作用,生成方式涉及服务器下发,动态更新,以及参与加密的过程。同时提醒用户注意参的有效期和反爬措施。</think>关于$_m_h5_tk$参的用途及生成方法,结合技术实现分析如下: ### 、$_m_h5_tk$核心用途 1. **接口签名验证**:作为生成签名(sign)的核心参,用于校验请求合法性[^2][^4] 2. **身份会话标识**:包含用户登录态信息,与cookie中的其他参共同维持会话状态[^2] 3. **动态安全校验**:配合时间戳参实现请求时效性验证,防止重放攻击[^2] ### 二、生成机制解析 根据逆向分析结果[^2]: 1. **服务器生成**:由服务端生成并下发给客户端 2. **组成结构**: $$\_m_h5_tk = \text{md5}(uid + \_m_h5_tk\_enc + timestamp)$$ 其中$\_m_h5_tk\_enc$为服务端加密密钥 3. **有效期**: - 默认有效期30分钟 - 超过有效期需重新登录获取[^2] ### 三、技术实现要点 以Python实现为例: ```python def generate_sign(params, token): """ :param params: 请求参字典 :param token: 从cookie获取的_m_h5_tk :return: 加密后的sign值 """ # 参拼接格式参考[^4] sign_str = f'{token}_{params["appKey"]}_{params["t"]}_{params["data"]}' return hashlib.md5(sign_str.encode()).hexdigest() ``` ### 四、维护注意事项 1. **定时刷新机制**:需实现cookie自动续期 2. **分布式存储**:多节点爬虫需共享会话状态 3. **异常处理**:捕获`401`响应及时重新认证
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值