代码设计
网页分析
第一页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方式中
- **keyword: **婚纱
- **suggest: **1.rem.0.0
- **wq: **婚纱
- **pvid: **33d24bcb2dca411ebd9dc4729a4e5670
- **page: **3
- **s: **56
- **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练习
可以直接在解析器中打开本地文档