diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-2/9-2-001.py" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-2/9-2-001.py"
new file mode 100644
index 0000000000000000000000000000000000000000..715467e488c9022bd54112d48f126d0ec0db2da9
--- /dev/null
+++ "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-2/9-2-001.py"
@@ -0,0 +1,18 @@
+from bs4 import BeautifulSoup
+import lxml
+def jd_search_parse(html):
+ html=html.replace('\r\n', "").replace("\n", "").replace("\t", "")
+ soup=BeautifulSoup(html,"lxml")
+ item=soup.select("li[data-sku='6039832']")[0]
+ # print(item)
+ # print(item.text)
+ print(item.previous_sibling)
+ print(item.next_sibling.next_sibling)
+
+
+
+if __name__=="__main__":
+ with open("jd_search.html","r",encoding="utf-8") as f:
+ html=f.read()
+
+ jd_search_parse(html)
\ No newline at end of file
diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-2/CSS-BeautifulSoup\345\205\203\347\264\240\345\256\232\344\275\215-9-2noteyun -0309\350\241\245.md" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-2/CSS-BeautifulSoup\345\205\203\347\264\240\345\256\232\344\275\215-9-2noteyun -0309\350\241\245.md"
new file mode 100644
index 0000000000000000000000000000000000000000..e5b75e91ba6c6f6880e3ba5ad765e1eaa8dcac6e
--- /dev/null
+++ "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-2/CSS-BeautifulSoup\345\205\203\347\264\240\345\256\232\344\275\215-9-2noteyun -0309\350\241\245.md"
@@ -0,0 +1,251 @@
+9-2noteyun
+
+# css-selector
+
+> 尽量避免解析路径中包含位置信息
+
+> chrome页面中内置了Jquery环境, 用$符号来表示
+
+## 直接定位元素
+
+- 通过id进行定位
+
+ ```python
+ $("#id值")
+ ```
+
+- 通过class进行定位
+
+ ```python
+ $(".class值")
+ ```
+
+- **通过属性名进行定位**
+
+ ```python
+ $("标签名[属性名='属性值']")
+
+ $("ul[class='gl-warp clearfix']")
+ ```
+
+## 获取兄弟节点
+
+- 获取当前节点的下一个节点
+
+ - dom提供的接口, 不属于css-selector语法
+
+ ```python
+ tmp = $("li[data-sku='6039832']")[0]
+ tmp.nextElementSibling#获取兄弟节点;右边一个商品
+ ```
+
+ - 通过css-selector(不建议)
+
+ ```python
+ $("ul[class='gl-warp clearfix'] li:first-child + li")
+ ```
+
+- 获取当前节点的上一个节点
+
+ - dom提供的接口, 不属于css-selector语法
+
+ ```python
+ tmp = $("li[data-sku='2136538']")[0]
+ tmp.previousElementSibling #获取兄弟节点;左边一个商品
+ ```
+
+## 获取父子节点
+
+- 获取父节点
+
+ - dom提供的接口, 不属于css-selector语法
+
+ ```python
+ tmp.parentElement
+ ```
+
+- 获取子节点
+
+ - 获取所有子节点
+
+ - **遍历**所有符合条件的元素
+
+ ```python
+ $("ul[class='gl-warp clearfix'] div[class='gl-i-wrap']")
+
+ ```
+
+ $("ul[class='gl-warp clearfix'] li[class='gl-item']")[0]
+
+ ```
+
+ - dom提供的接口, 不属于css-selector语法
+
+ ```python
+ $("ul[class='gl-warp clearfix']")[0].children
+ ```
+
+ 
+
+ - 获取第一个子节点
+
+ ```python
+ :fist-child
+ $("ul[class='gl-warp clearfix'] li:first-child")[0]
+ ```
+
+ - 获取最后一个子节点
+
+ ```python
+ :last-child
+ $("ul[class='gl-warp clearfix'] li:last-child")[0]
+ ```
+
+ - 获取第N个子节点
+
+ ```python
+ #:nth-child(索引) 获取第五个
+ $("ul[class='gl-warp clearfix'] li:nth-child(5)")[0]
+ ```
+
+ 
+
+# 模糊匹配
+
+- 匹配开头
+
+ `^`
+
+ ```python
+ # 匹配data-sku属性值为2开头的元素
+ $("li[data-sku^='2']")
+ ```
+
+ 
+
+- 匹配结尾
+
+ `$`
+
+ ```python
+ $("li[data-sku$='2']")
+ ```
+
+- 匹配子集
+
+ `*`
+
+ ```python
+ $("li[data-sku*='2']")
+ ```
+
+ 
+
+- 获取文本值
+
+ ```python
+ $("li[data-sku='6039832'] div[class='p-name p-name-type-2'] em")[0].innerText
+ ```
+
+ 
+
+ 
+
+
+
+- 获取属性值
+
+ ```python
+ $("ul[class='gl-warp clearfix'] li")[0].getAttribute("data-sku")
+ ```
+
+ 
+
+# BeautifulSoup
+
+- 安装
+
+ ```python
+ pip install bs4
+ pip install lxml
+ ```
+
+- 使用BeautifulSoup
+
+ ```python
+ from bs4 import BeautifulSoup
+
+
+ def jd_search_parse(html):
+ soup = BeautifulSoup(html, "lxml")
+ item = soup.select("li[data-sku='6039832']")[0]
+ ```
+
+- 直接定位元素
+
+ 略
+
+- 去除空白字符
+
+ ```python
+ html = html.replace('\r\n', "").replace("\n", "").replace("\t", "")
+ ```
+
+ 
+
+- 获取兄弟节点
+
+ - 获取上一个节点
+
+ ```python
+ tmp_ele.previous_sibling
+ ```
+
+ - 获取下一个节点
+
+ ```python
+ tmp_ele.next_sibling
+ ```
+
+- 获取父子节点
+
+ - 获取父节点
+
+ ```python
+ tmp_ele.parent
+ ```
+
+ - 获取子节点
+
+ ```python
+ tmp_ele.children
+ ```
+
+- 模糊匹配
+
+ 略
+
+- 获取文本值
+
+ ```python
+ content = tmp_ele.text.strip()
+ ```
+
+- 获取属性值
+
+ ```python
+ value = tmp_ele.attrs["data-sku"]
+ ```
+
+ 
+
+ 
+
+ 
+
+ debug:50分钟之后;
+
+# 课后作业
+
+- 练习css-selector
+- 练习用beautifulsoup进行页面解析
\ No newline at end of file
diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-2/jd_search.html" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-2/jd_search.html"
new file mode 100644
index 0000000000000000000000000000000000000000..2c3965e9a69712b78a3efc6914872baed4f3c8f9
--- /dev/null
+++ "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-2/jd_search.html"
@@ -0,0 +1,6611 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+鼠标 - 商品搜索 - 京东
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ - 你好,请登录 免费注册
+
+ -
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+ -
+
+ -
+
+
+ 客户服务
+
+
+
+
+ -
+
+
+ 网站导航
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
品牌:
+
+
+ - 所有品牌
+ - A
+ - B
+ - C
+ - D
+ - E
+ - F
+ - G
+ - H
+ - I
+ - J
+ - K
+ - L
+ - M
+ - N
+ - O
+ - P
+ - Q
+ - R
+ - S
+ - T
+ - U
+ - W
+ - X
+ - Y
+ - Z
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥39.90
+
+
+
+
+ 条评价条评价
+
+
+
+ 自营
+
+
+
广告
+

+
+
+
+ -
+
+
+
+
+
+ ¥109.00
+
+
+
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥109.00
+
+ ¥99.00
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+ 1件9.5折
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥22.90
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥79.00
+
+ ¥69.00
+
+
+
+ 条评价
+
+
+
+ 自营
+ 赠
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥9.90
+
+
+
+
+ 条评价
+
+
+
+ 自营
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥23.80
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+
+
+
广告
+

+
+
+
+ -
+
+
+
+
+
+ ¥29.90
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥22.90
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥119.00
+
+ ¥99.00
+
+
+
+ 条评价
+
+
+
+ 自营
+ 赠
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥49.00
+
+ ¥39.00
+
+
+
+
+
+ 自营
+ 赠
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥349.00
+
+ ¥289.00
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+ 1件9.5折
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥129.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+
+
+
广告
+

+
+
+
+ -
+
+
+
+
+
+ ¥29.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥239.00
+
+ ¥199.00
+
+
+
+
+
+ 自营
+ 放心购
+ 1件9.5折
+
+
+
北京预定
+
+
+
+ -
+
+
+
+
+
+ ¥25.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+ 秒杀
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥79.00
+
+ ¥65.00
+
+
+
+
+
+ 自营
+ 赠
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥33.90
+
+
+
+
+ 条评价
+
+
+
+ 京东物流
+ 闪购
+ 免邮
+ 券1000-100
+
+
+
+
+
+ -
+
+
+
+ 单件
+ 套装2件
+
+
+
+
+
+
+
+ ¥109.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 秒杀
+
+
+
+
+
+
+ ¥399.00
+
+
+
+ 条评价
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+ ¥29.90
+
+
+
+ 条评价
+
+
+
+ 新品
+ 免邮
+
+
+
抢购中剩余1天08时26分
+
+
+ -
+
+
+
+
+
+ ¥109.00
+
+ ¥99.00
+
+
+
+ 条评价
+
+
+
+ 自营
+ 赠
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥109.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥429.00
+
+ ¥279.00
+
+
+
+
+
+ 自营
+ 赠
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥219.00
+
+
+
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥59.00
+
+
+
+
+ 条评价条评价
+
+
+
+ 自营
+
+
+
广告
+

+
+
+
+ -
+
+
+
+
+
+ ¥27.90
+
+
+
+
+ 条评价
+
+
+
+ 京东物流
+ 闪购
+ 免邮
+ 券1000-100
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥89.00
+
+ ¥79.00
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+ 赠
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥19.90
+
+
+
+
+ 条评价
+
+
+
+ 京东物流
+ 新品
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥109.00
+
+ ¥99.00
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+ 1件9.5折
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥99.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥59.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+
+
+
广告
+
![]()
+
+
+
+ -
+
+
+
+
+
+ ¥429.00
+
+ ¥279.00
+
+
+
+
+
+ 自营
+ 赠
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥59.00
+
+
+
+
+ 条评价
+
+
+
+ 京东物流
+ 放心购
+ 闪购
+ 券1000-100
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥28.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥39.90
+
+
+
+
+ 条评价
+
+
+
+ 自营
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥129.00
+
+ ¥119.00
+
+
+
+ 条评价
+
+
+
+ 自营
+ 赠
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥59.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+
+
+
广告
+

+
+
+
+ -
+
+
+
+
+
+ ¥749.00
+
+
+
+
+
+
+ 自营
+ 放心购
+ 1件9.5折
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥49.90
+
+
+
+
+ 条评价
+
+
+
+ 京东物流
+ 放心购
+ 本地仓
+ 免邮
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥69.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 新品
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥39.00
+
+
+
+
+ 条评价
+
+
+
+ 京东物流
+ 免邮
+ 券199-10
+ 赠
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥19.90
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥468.00
+
+
+
+
+ 条评价
+
+
+
+
+
+
广告
+

+
+
+
+ -
+
+
+
+
+
+ ¥59.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥119.00
+
+ ¥99.00
+
+
+
+ 条评价
+
+
+
+ 自营
+ 赠
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥139.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥99.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥59.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+ 新品
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥36.80
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+
+
+
广告
+

+
+
+
+ -
+
+
+
+
+
+ ¥159.00
+
+ ¥149.00
+
+
+
+ 条评价
+
+
+
+ 自营
+ 赠
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥129.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥39.90
+
+
+
+
+ 条评价
+
+
+
+ 放心购
+ 免邮
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥39.90
+
+
+
+
+
+
+ 自营
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥37.90
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 闪购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥99.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+
+
+
广告
+

+
+
+
+ -
+
+
+
+
+ ¥39.90
+
+
+
+ 条评价
+
+
+
+ 京东物流
+ 本地仓
+ 免邮
+
+
+
抢购中剩余1天07时01分
+
+
+ -
+
+
+
+
+
+ ¥159.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+ 闪购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥22.90
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 秒杀
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥99.00
+
+
+
+
+ 条评价
+
+
+
+ 京东物流
+ 秒杀
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥349.00
+
+
+
+
+ 条评价
+
+
+
+ 京东物流
+ 放心购
+ 秒杀
+ 满349-50
+ 赠
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+ 多品类齐全,轻松购物
+
+ -
+ 快多仓直发,极速配送
+
+ -
+ 好正品行货,精致服务
+
+ -
+ 省天天低价,畅选无忧
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/001.py" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/001.py"
new file mode 100644
index 0000000000000000000000000000000000000000..bc34bb6b1e2eb099bb6a19a675081ffead8b0432
--- /dev/null
+++ "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/001.py"
@@ -0,0 +1,5 @@
+import sys
+# print(sys.path)#打印路径列表
+# ['E:\\PycharmProjects\\train002_1231\\second-python-bootcamp\\第二期训练营\\5班\\5班_云\\第9周0222--0228\\9-3\\jd_crawler', 'E:\\PycharmProjects\\train002_1231\\second-python-bootcamp', 'E:\\PycharmProjects\\train002_1231\\second-python-bootcamp\\第二期训练营\\5班\\5班_云\\第9周0222--0228\\9-3\\jd_crawler', 'E:\\PycharmProjects\\train002_1231\\second-python-bootcamp\\第二期训练营\\5班\\5班_云\\第9周0222--0228\\9-3', 'D:\\bsoft\\ananaconda\\python37.zip', 'D:\\bsoft\\ananaconda\\DLLs', 'D:\\bsoft\\ananaconda\\lib', 'D:\\bsoft\\ananaconda', 'D:\\bsoft\\ananaconda\\lib\\site-packages', 'D:\\bsoft\\ananaconda\\lib\\site-packages\\win32', 'D:\\bsoft\\ananaconda\\lib\\site-packages\\win32\\lib', 'D:\\bsoft\\ananaconda\\lib\\site-packages\\Pythonwin']
+# sys.path.append(r"H:\PyCharmProjects\tutorials_2")#不灵活
+print("001",__name__)
\ No newline at end of file
diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/__pycache__/settings.cpython-37.pyc" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/__pycache__/settings.cpython-37.pyc"
new file mode 100644
index 0000000000000000000000000000000000000000..66896cfba1c0cab53199d3159e8d98988c45f309
Binary files /dev/null and "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/__pycache__/settings.cpython-37.pyc" differ
diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/jd_parser/__pycache__/search.cpython-37.pyc" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/jd_parser/__pycache__/search.cpython-37.pyc"
new file mode 100644
index 0000000000000000000000000000000000000000..eb5c5ac342a83faad7ca1baca2e833f29f725c6f
Binary files /dev/null and "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/jd_parser/__pycache__/search.cpython-37.pyc" differ
diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/jd_parser/detail.py" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/jd_parser/detail.py"
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/jd_parser/search.py" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/jd_parser/search.py"
new file mode 100644
index 0000000000000000000000000000000000000000..07e63d8ee07ac9140dd59808162e9b3de624da77
--- /dev/null
+++ "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/jd_parser/search.py"
@@ -0,0 +1,40 @@
+from bs4 import BeautifulSoup
+import json
+
+def parse_jd_item(html):#解析器
+ result = []#列表,收集,解析的结果
+
+ soup = BeautifulSoup(html, "lxml")
+ print(soup)
+ item_array = soup.select("ul[class='gl-warp clearfix'] li[class='gl-item']")
+ # $("ul[class='gl-warp clearfix'] li[class='gl-item']")
+ for item in item_array:
+ try:
+ sku_id = item.attrs["data-sku"]
+ img = item.select("img[data-img='1']")
+ price = item.select("div[class='p-price']")
+ title = item.select("div[class='p-name p-name-type-2']")
+ shop = item.select("div[class='p-shop']")
+ icons = item.select("div[class='p-icons']")
+ # print(img)
+
+
+ img = img[0].attrs['data-lazy-img'] if img else ""
+ price = price[0].strong.i.text if price else ""
+ title = title[0].text.strip() if title else ""
+ shop = shop[0].a.attrs['title'] if shop[0].text.strip() else ""
+ icons = json.dumps([tag_ele.text for tag_ele in icons[0].select("i")]) if icons else '[]'
+
+ result.append((sku_id, img, price, title, shop, icons))#收集结果
+ except Exception as e:
+ print(e.args)
+ return result
+ # return result
+
+
+if __name__ == "__main__":
+ with open(r"..\\test\\search.html", "r", encoding="utf-8") as f:
+
+ html = f.read()
+ result = parse_jd_item(html)
+ print(result)
\ No newline at end of file
diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/main.py" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/main.py"
new file mode 100644
index 0000000000000000000000000000000000000000..35123b587f0705a67b4ba12b376ad0e1c2acdb39
--- /dev/null
+++ "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/main.py"
@@ -0,0 +1,54 @@
+import random
+import pymysql
+import requests
+from jd_crawler.jd_parser.search import parse_jd_item
+from jd_crawler.settings import MYSQL_CONF, HEADERS
+
+
+def saver(item_array):#保存到sql数据库
+ """
+ 持久化爬取结果
+ :param item_array:
+ :return:
+ """
+ cursor = mysql_con.cursor()#每次建立一个游标
+ SQL = """INSERT INTO jd_search(sku_id,img,price, title, shop, icons)
+ VALUES ( %s,%s, %s, %s, %s, %s)"""
+ cursor.executemany(SQL, item_array)
+ mysql_con.commit()#提交、入库
+ cursor.close()#关闭游标
+
+def donwloader(task):#下载器
+ """
+ 下载器
+ 请求目标网址的组件
+ :param task:
+ :return:
+ """
+ url = "https://search.jd.com/Search"
+ params = {
+ "keyword": task #关键词的列表
+ }
+ res = requests.get(url=url, params=params, headers=HEADERS, timeout=10,
+ # proxies={"https": f"https:144.255.48.62","http": f"http:144.255.48.62"}
+ )
+ return res
+
+
+def main(task_array):#main函数,调度器
+ """
+ 爬虫任务的调度
+ :return:
+ """
+ for task in task_array:
+ result = donwloader(task)#下载器
+ item_array = parse_jd_item(result.text)#解析器
+ print("GET ITEMS", item_array)#打印语句,检查执行的正确与否,及其过程
+ saver(item_array)
+
+
+if __name__ == "__main__":#入口
+ # 用来代替生产者
+ mysql_con = pymysql.connect(**MYSQL_CONF)
+ task_array = ["鼠标", "键盘", "显卡", "耳机"]
+ main(task_array)
\ No newline at end of file
diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/settings.py" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/settings.py"
new file mode 100644
index 0000000000000000000000000000000000000000..d260ebbe81a4237833c331fedfe1fe8d34055935
--- /dev/null
+++ "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/settings.py"
@@ -0,0 +1,14 @@
+# 设置文件
+# 请求头
+HEADERS = {
+ "user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36",
+ # "upgrade-insecure-requests": "1"
+}
+
+# 配置
+MYSQL_CONF = {
+ "host": "127.0.0.1",
+ "user": "root",
+ "password": "123456",
+ "db": "py_class"
+}
\ No newline at end of file
diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/shubiao_jd01.html" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/shubiao_jd01.html"
new file mode 100644
index 0000000000000000000000000000000000000000..2d96bb96193cd8135bec536583e5ad654c0cfb8a
--- /dev/null
+++ "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/shubiao_jd01.html"
@@ -0,0 +1,5475 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+鼠标 - 商品搜索 - 京东
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ - 你好,请登录 免费注册
+
+ -
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+ -
+
+ -
+
+
+ 客户服务
+
+
+
+
+ -
+
+
+ 网站导航
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
鼠标无线
约234244个商品
鼠标垫
约621963个商品
鼠标有线
约121575个商品
鼠标键盘
约623187个商品
鼠标自营
约760312个商品
鼠标游戏
约627112个商品
鼠标罗技
约18124个商品
鼠标垫大号
约349904个商品
鼠标苹果
约377669个商品
鼠标宏
约65866个商品
鼠标蓝牙
约500820个商品
鼠标雷蛇
约1078个商品
鼠标键盘套装
约214703个商品
- 关闭
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
品牌:
+
+
+ - 所有品牌
+ - A
+ - B
+ - C
+ - D
+ - E
+ - F
+ - G
+ - H
+ - I
+ - J
+ - K
+ - L
+ - M
+ - N
+ - O
+ - P
+ - Q
+ - R
+ - S
+ - T
+ - U
+ - W
+ - X
+ - Y
+ - Z
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥39.90
+
+
+
+
+ 条评价
+
+
+
+ 自营
+
+
+
广告
+
![]()
+
+
+
+ -
+
+
+
+
+
+ ¥109.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥105.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥22.90
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥79.00
+
+ ¥75.00
+
+
+
+ 条评价
+
+
+
+ 自营
+ 赠
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥9.90
+
+
+
+
+ 条评价
+
+
+
+ 自营
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥19.90
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+
+
+
广告
+
![]()
+
+
+
+ -
+
+
+
+
+
+ ¥29.90
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥22.90
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥299.00
+
+
+
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥105.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥79.00
+
+ ¥75.00
+
+
+
+
+
+ 自营
+ 赠
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥59.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+
+
+
广告
+
![]()
+
+
+
+ -
+
+
+
+
+
+ ¥49.00
+
+ ¥47.00
+
+
+
+
+
+ 自营
+ 赠
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥229.00
+
+
+
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥119.00
+
+ ¥113.00
+
+
+
+ 条评价
+
+
+
+ 自营
+ 赠
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥29.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+
+
+
+
+
+ -
+
+
+
+
+ ¥29.90
+
+
+
+ 条评价
+
+
+
+ 放心购
+ 新品
+ 免邮
+
+
+
抢购中剩余07时41分41秒
+
+
+ -
+
+
+
+
+
+ ¥29.90
+
+
+
+
+ 条评价
+
+
+
+ 京东物流
+ 免邮
+ 券99-10
+
+
+
+
+
+ -
+
+
+
+ 单件
+ 套装2件
+
+
+
+
+
+
+
+ ¥109.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 秒杀
+
+
+
+
+
+
+ ¥399.00
+
+
+
+ 条评价
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥109.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥109.00
+
+ ¥104.00
+
+
+
+
+
+ 自营
+ 赠
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥229.00
+
+
+
+
+
+
+ 自营
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥89.00
+
+ ¥85.00
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+ 赠
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥128.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 放心购
+
+
+
广告
+
![]()
+
+
+
+ -
+
+
+
+
+
+ ¥239.00
+
+
+
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+ ¥19.90
+
+
+
+ 条评价
+
+
+
+ 京东物流
+ 新品
+ 券99-10
+
+
+
抢购中剩余2天07时41分
+
+
+ -
+
+
+
+
+
+ ¥159.00
+
+ ¥151.00
+
+
+
+ 条评价
+
+
+
+ 自营
+ 赠
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥37.90
+
+
+
+
+ 条评价
+
+
+
+ 自营
+ 闪购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥99.00
+
+
+
+
+ 条评价
+
+
+
+ 自营
+
+
+
+
+
+
+
+
正在加载中,请稍后~~
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+ 多品类齐全,轻松购物
+
+ -
+ 快多仓直发,极速配送
+
+ -
+ 好正品行货,精致服务
+
+ -
+ 省天天低价,畅选无忧
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/test/parser_test.py" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/test/parser_test.py"
new file mode 100644
index 0000000000000000000000000000000000000000..84c9c64a6f1df2230f47255a49d2d3b8a9d253d1
--- /dev/null
+++ "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/test/parser_test.py"
@@ -0,0 +1,6 @@
+# from jd_crawler.jd_parser import search
+#
+# with open(r"..\\test\\search.html", "r", encoding="utf-8") as f:
+# html = f.read()
+# result = parse_jd_item(html)
+# print(result)
\ No newline at end of file
diff --git "a/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/test/search.html" "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/test/search.html"
new file mode 100644
index 0000000000000000000000000000000000000000..0f67859bf30f108ca01618bdfc3a29b171484be0
--- /dev/null
+++ "b/\347\254\254\344\272\214\346\234\237\350\256\255\347\273\203\350\220\245/5\347\217\255/5\347\217\255_\344\272\221/\347\254\2549\345\221\2500222--0228/9-3/jd_crawler/test/search.html"
@@ -0,0 +1,6615 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+鼠标 - 商品搜索 - 京东
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+ 你好,请登录 免费注册
+
+
+ -
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+ 客户服务
+
+
+
+
+ -
+
+
+ 网站导航
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
品牌:
+
+
+ - 所有品牌
+ - A
+ - B
+ - C
+ - D
+ - E
+ - F
+ - G
+ - H
+ - I
+ - J
+ - K
+ - L
+ - M
+ - N
+ - O
+ - P
+ - Q
+ - R
+ - S
+ - T
+ - U
+ - W
+ - X
+ - Y
+ - Z
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
高级选项:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥23.80
+
+
+
+
+
+
+
+
+ 自营
+ 放心购
+
+
+
广告
+
![]()
+
+
+
+ -
+
+
+
+
+
+ ¥22.90
+
+
+
+
+
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥29.00
+
+
+
+
+
+
+
+
+ 自营
+ 放心购
+ 新品
+ 秒杀
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥99.00
+
+
+
+
+
+
+ 自营
+ 放心购
+ 满99-10
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥22.90
+
+
+
+
+
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥79.00
+
+ ¥69.00
+
+
+
+
+
+
+
+ 自营
+ 赠
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥29.90
+
+
+
+
+
+
+
+
+ 自营
+
+
+
广告
+
![]()
+
+
+
+ -
+
+
+
+
+
+ ¥29.90
+
+
+
+
+
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥349.00
+
+
+
+
+
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥109.00
+
+
+
+
+
+
+
+
+ 自营
+ 放心购
+
+
+
上海预定
+
+
+
+ -
+
+
+
+
+
+ ¥119.00
+
+
+
+
+
+
+
+
+ 自营
+ 券99-20
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥9.90
+
+
+
+
+
+
+
+
+ 自营
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥119.00
+
+
+
+
+
+
+
+
+ 自营
+ 放心购
+
+
+
广告
+
![]()
+
+
+
+ -
+
+
+
+
+
+ ¥79.00
+
+ ¥75.00
+
+
+
+
+
+ 自营
+ 放心购
+ 赠
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥29.90
+
+
+
+
+
+
+
+
+ 京东物流
+ 放心购
+ 免邮
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥199.00
+
+
+
+
+
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥49.00
+
+ ¥45.00
+
+
+
+
+
+
+
+ 自营
+ 赠
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥129.00
+
+ ¥119.00
+
+
+
+
+
+
+
+ 自营
+ 赠
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥29.90
+
+
+
+
+
+
+
+
+ 自营
+ 放心购
+
+
+
广告
+
![]()
+
+
+
+ -
+
+
+
+
+
+ ¥239.00
+
+
+
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥99.00
+
+
+
+
+
+
+
+
+ 自营
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥29.90
+
+
+
+
+
+
+
+
+ 京东物流
+ 放心购
+ 新品
+ 免邮
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥19.90
+
+
+
+
+
+
+
+
+ 京东物流
+ 放心购
+ 新品
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥749.00
+
+ ¥649.00
+
+
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥29.90
+
+
+
+
+
+
+
+
+ 自营
+ 放心购
+
+
+
广告
+
![]()
+
+
+
+ -
+
+
+
+
+
+ ¥59.00
+
+
+
+
+
+
+
+
+ 自营
+ 赠
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥138.00
+
+
+
+
+
+
+
+
+ 京东物流
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥29.00
+
+
+
+
+
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥119.00
+
+ ¥105.00
+
+
+
+
+
+
+
+ 自营
+ 赠
+
+
+
+
+
+ -
+
+
+
+
+
+ ¥199.00
+
+
+
+
+
+
+
+
+ 自营
+ 放心购
+
+
+
+
+
+
+
+
正在加载中,请稍后~~
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+ 多品类齐全,轻松购物
+
+ -
+ 快多仓直发,极速配送
+
+ -
+ 好正品行货,精致服务
+
+ -
+ 省天天低价,畅选无忧
+
+
+
+
+
+
+
+
+
+
+
+
+