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

京东搜索关键词

你现在关注的是京东爬虫中的关键词相关知识点,包括关键词的 URL 处理、构造技巧、在爬虫中的使用注意事项等,我会围绕这部分展开详细讲解,衔接之前的爬虫实战内容。

一、京东搜索关键词的核心特性

  1. 支持中文直接搜索:京东官网支持中文关键词输入(如 “笔记本电脑”、“华为手机”),但在 HTTP 请求中,中文关键词会被自动进行URL 编码(将中文转换为%XX格式的字符串)。
  2. 关键词与搜索结果的关联性:关键词的精准度决定爬取结果的相关性,京东搜索会对关键词进行分词匹配(如 “Python 实战书籍” 会拆分匹配 “Python”、“实战”、“书籍”)。
  3. 请求参数中的关键词传递:在之前的爬虫代码中,关键词通过params字典的"keyword""wq"字段传递,其中"wq"字段是京东的补全搜索参数,与主关键词保持一致可提高请求成功率。

二、关键词的 URL 编码处理

1. 自动编码(推荐,爬虫首选)

在使用requests库发送请求时,将关键词直接传入params参数,requests自动完成中文关键词的 URL 编码,无需手动处理,这也是之前代码中采用的方式,示例:

python

运行

import requests from fake_useragent import UserAgent ua = UserAgent() headers = {"User-Agent": ua.random} # 直接传入中文关键词,无需手动编码 keyword = "Python实战书籍" url = "https://search.jd.com/Search" params = { "keyword": keyword, "enc": "utf8", "page": 1 } # requests会自动将“Python实战书籍”编码为URL可识别格式 response = requests.get(url, params=params, headers=headers, timeout=15) print("最终请求URL:", response.url) # 可查看编码后的完整URL

2. 手动编码(备用方案)

若需手动处理关键词编码,可使用 Python 内置的urllib.parse.quote()方法,适用于不使用requests参数传递的场景,示例:

python

运行

from urllib.parse import quote # 中文关键词手动URL编码 keyword = "Python实战书籍" encoded_keyword = quote(keyword, encoding="utf-8") # 指定utf-8编码(京东要求) print("编码后关键词:", encoded_keyword) # 输出:Python%E5%AE%9E%E6%88%98%E4%B9%A6%E7%B1%8D # 手动构造编码后的URL url = f"https://search.jd.com/Search?keyword={encoded_keyword}&enc=utf8&page=1"

三、关键词的构造与优化技巧(提升爬取精准度)

1. 精准关键词构造(获取目标商品)

  • 带品牌 / 型号:如 “华为 Mate 60 Pro 手机”、“联想拯救者 Y9000P 笔记本”
  • 带规格 / 参数:如 “16G 512G 轻薄笔记本”、“500ml 保温杯 316 不锈钢”
  • 带用途:如 “办公用激光打印机”、“学生党平价平板电脑”

2. 模糊关键词构造(获取泛类商品)

适用于爬取某一类商品的整体信息,如 “笔记本电脑”、“休闲零食”、“家居收纳用品”,这类关键词返回结果数量多,适合批量学习爬虫数据处理。

3. 排除式关键词(过滤无关结果)

京东支持使用-符号排除无关内容,构造关键词时可利用这一规则提升爬取结果的精准度,示例:

  • 关键词 “笔记本电脑 - 游戏本”:爬取非游戏本的笔记本电脑
  • 关键词 “保温杯 - 塑料 - 儿童”:爬取成人用、非塑料材质的保温杯

四、爬虫中关键词使用的注意事项

  1. 避免敏感关键词:勿爬取涉及违禁品、侵权商品、医疗药品等敏感关键词的内容,遵守平台规则和法律法规。
  2. 关键词格式化处理:去除关键词前后的空格、特殊字符(如#@),避免请求失败或返回无效结果,示例:

    python

    运行

    def format_keyword(keyword): """关键词格式化:去空格、去特殊字符""" # 去除前后空格 keyword = keyword.strip() # 去除常见无效特殊字符 invalid_chars = ["#", "@", "¥", "★", "☆"] for char in invalid_chars: keyword = keyword.replace(char, "") return keyword # 格式化使用 raw_keyword = " ¥Python书籍★实战 " target_keyword = format_keyword(raw_keyword) print("格式化后关键词:", target_keyword) # 输出:Python书籍实战
  3. 防止中文乱码:无论是关键词传递还是结果保存,均统一使用utf-8编码(与之前爬虫代码中的response.encoding = "utf-8"、文件保存encoding="utf-8"保持一致)。
  4. 批量关键词爬取的延时控制:若需循环爬取多个关键词(如 ["Python 书籍", "Java 书籍", "C++ 书籍"]),需在关键词之间添加额外延时(≥3 秒),避免高频请求触发反爬,示例:

    python

    运行

    import time from fake_useragent import UserAgent # 批量关键词列表 keyword_list = ["Python书籍", "Java书籍", "C++书籍"] for keyword in keyword_list: print(f"开始爬取关键词:{keyword}") goods_list = get_jd_goods(keyword=keyword, page=1) # 调用之前的爬虫函数 save_goods_to_txt(goods_list, keyword) # 关键词之间添加3秒延时,强化反爬 time.sleep(3)

五、补充:京东关键词搜索的特殊规则

  1. 关键词中的空格代表 “并列匹配”:如 “手机 快充”,会匹配同时包含 “手机” 和 “快充” 的商品。
  2. 双引号包裹关键词代表精确匹配:如"Python核心编程",会严格匹配完整关键词,不进行分词拆分,爬取结果更精准(需注意:双引号传入请求时无需转义,requests会自动处理)。
  3. 部分特殊符号(如*?)在京东搜索中无效,爬虫中构造关键词时可直接剔除。

总结

  1. 京东爬虫中,中文关键词优先使用requests自动 URL 编码,无需手动处理,简洁高效。
  2. 关键词的精准构造(带品牌 / 规格)和格式化处理,是提升爬取结果相关性的关键。
  3. 批量关键词爬取时,需添加额外延时,同时避免敏感关键词,遵守爬虫合规原则。
  4. 衔接之前的实战代码,修改target_keyword变量为不同优化后的关键词,即可获取对应的商品列表。
http://www.jsqmd.com/news/192255/

相关文章:

  • Ableton Live创作旋律+HeyGem生成解说视频配套
  • 从“憋不出致谢”到“逻辑自洽闭环”:一位本科毕业生如何用AI工具重构论文写作流程
  • Teams网课录像导入HeyGem重新配音生成新版
  • 2025年国内做得好的四边封包装袋供货厂家排行,中封袋/三边封拉链袋/聚酯尼龙袋/纹路袋订做厂家有哪些 - 品牌推荐师
  • 3ds Max制作人物视频导入HeyGem进行语音同步
  • [精品]基于微信小程序的企业内部订餐小程序 UniApp
  • 【C# 12顶级语句深度解析】:掌握现代C#编程的终极利器
  • 避免生产环境崩溃:C#内联数组大小设定的5条黄金法则
  • HeyGem数字人系统部署教程:如何在本地启动并运行AI视频生成工具
  • iZotope RX修复老旧录音+HeyGem焕发新生
  • 12-Ants(轻量级桌面娱乐工具)
  • 仅限今日公开:C#跨平台调试日志框架选型终极对比报告
  • 2025年度温室工程建设公司排名:山东冠创薄膜保温拱棚专业吗? - 工业品网
  • 从新手到专家:C# Lambda函数的7个必知应用场景
  • 强烈安利!10款AI论文工具测评,本科生写毕业论文必备
  • Kubernetes集群运行HeyGem?大规模部署设想
  • 2025年行业内排行前列的自立袋实力厂家找哪家,八边封包装袋/包装袋/自立袋/中封袋/聚酯尼龙袋销售厂家怎么选择 - 品牌推荐师
  • 当本科论文遇上AI智囊团:解锁“书匠策”中那些你不知道的学术生存秘籍
  • 2025靠谱横流式/复合流冷却塔品牌TOP5推荐:权威测评帮你避坑 - myqiye
  • Bose音响外放检查HeyGem生成视频同步情况
  • C# 12主构造函数全面指南,一文掌握7种高效计算模式
  • 本科毕业季不再“从零写起”:一位理工科学生的AI协作手记——那些论文写作中被忽略的隐形效率杠杆
  • 【C#跨平台权限检查终极指南】:从零掌握多系统权限控制核心技术
  • 基于SpringBoot+Vue的数码产品购物商城的设计与实现
  • 讯飞语音合成+HeyGem全自动数字人视频生产线
  • 为什么顶级团队都在用C#集合表达式?揭秘高效列表处理的内部实践
  • GarageBand自制音乐播客+HeyGem生成主持人视频
  • 服务器数据盘做raid需要盘数据
  • HeyGem适合制作虚拟主播视频吗?高度契合
  • C# 12拦截器异常崩溃?一文搞定生产环境中的静默失败问题