爬取京东物品信息实例

Posted by lily on April 7, 2023

代码设计

网页分析

第一页url 未动态刷新:

https://search.jd.com/Search?keyword=%E5%A9%9A%E7%BA%B1&suggest=1.rem.0.0&wq=%E5%A9%9A%E7%BA%B1&pvid=33d24bcb2dca411ebd9dc4729a4e5670&page=1&s=1&click=0

动态刷新后:

https://search.jd.com/Search?keyword=%E5%A9%9A%E7%BA%B1&suggest=1.rem.0.0&wq=%E5%A9%9A%E7%BA%B1&pvid=33d24bcb2dca411ebd9dc4729a4e5670&page=1&s=1&click=0

第二页url 未动态刷新过:

https://search.jd.com/Search?keyword=%E5%A9%9A%E7%BA%B1&suggest=1.rem.0.0&wq=%E5%A9%9A%E7%BA%B1&pvid=33d24bcb2dca411ebd9dc4729a4e5670&page=3&s=56&click=0

动态刷新后:

https://search.jd.com/Search?keyword=%E5%A9%9A%E7%BA%B1&suggest=1.rem.0.0&wq=%E5%A9%9A%E7%BA%B1&pvid=33d24bcb2dca411ebd9dc4729a4e5670&page=3&s=56&click=0

第三页url 未刷新:

https://search.jd.com/Search?keyword=%E5%A9%9A%E7%BA%B1&suggest=1.rem.0.0&wq=%E5%A9%9A%E7%BA%B1&pvid=33d24bcb2dca411ebd9dc4729a4e5670&page=5&s=116&click=0

刷新:

https://search.jd.com/Search?keyword=%E5%A9%9A%E7%BA%B1&suggest=1.rem.0.0&wq=%E5%A9%9A%E7%BA%B1&pvid=33d24bcb2dca411ebd9dc4729a4e5670&page=5&s=116&click=0

%E5%A9%9A%E7%BA%B1————keyword婚纱

考虑参数比较多,可以以params的方式将参数都打包到requests模块的get方式中

  1. **keyword: **婚纱
  2. **suggest: **1.rem.0.0
  3. **wq: **婚纱
  4. **pvid: **33d24bcb2dca411ebd9dc4729a4e5670
  5. **page: **3
  6. **s: **56
  7. **click: **0

橙色背景参数为可设置可变参数 params = { “keyword”: “婚纱”, “suggest”: “1.rem.0.0”, “wq”: “婚纱”, “pvid”: “33d24bcb2dca411ebd9dc4729a4e5670”, “page”: “1”, “s”: “1”, “click”: “0” } 第二页page:

分析结果:

url = “https://search.jd.com/Search params = json{},设置其中几个参数可变,用循环爬取下一个页面

信息提取

| <div class="p-price"> | | | — | — | | | | | | 4999.00 | | | | | | </div> |

商品价格368.00标签里,可以通过正则匹配价格,也可以通过bs4库解析页面获得标签的非属性字符串 商品名称 有的包含在</font>2022新款新娘森系仙梦幻星空拖尾显瘦简单礼服小个子 齐地款配三件配饰(3天左右发) M</em> 以</font>开始</em>结束的一段文本当中, 有的则属于QIANBAN千阪品牌主婚纱礼服新娘2022新款白色赫本简约显瘦长拖尾线下同款宫廷公主回门孕妇婚纱裙 修身中腰款 本款下单有头纱 标签的非属性字符串中.string————看起来只能用bs4库来解析页面。

实现爬取

Demo练习

可以直接在解析器中打开本地文档 image.png