Ver código fonte

获取商品列表

cr 4 anos atrás
pai
commit
5b2ef285ec

+ 27 - 0
app/controller/home.js

@@ -129,6 +129,33 @@ class HomeController extends Controller {
129 129
   }
130 130
 
131 131
 
132
+
133
+  /**
134
+  * 商品列表
135
+  * @param {string} url 店铺url 
136
+  */
137
+  getGoodList(){
138
+    const { ctx } = this;
139
+    const query = this.ctx.query;
140
+    const url = query.url;
141
+
142
+    const data = new ResultModel();
143
+
144
+    if (url) {
145
+      ctx.service.getGoodList.getData(url)
146
+        .then(res => {
147
+          saveFile(`goodList.json`, JSON.stringify(res, null, 4), './output/goodList/');
148
+          console.log('商品列表获取成功')
149
+        });
150
+      data.success = true;
151
+      data.message = '等待回调';
152
+    } else {
153
+      data.success = false;
154
+      data.message = '未传入详情url';
155
+    }
156
+
157
+    ctx.body = JSON.stringify(data);
158
+  }
132 159
 }
133 160
 
134 161
 module.exports = HomeController;

+ 3 - 0
app/router.js

@@ -10,4 +10,7 @@ module.exports = app => {
10 10
   router.get('/getClassify', controller.home.getClassify);
11 11
   router.get('/getClassifyGoods', controller.home.getClassifyGoods);
12 12
   router.get('/getGoodDetail', controller.home.getGoodDetail);
13
+
14
+  // 获取商品列表
15
+  router.get('/getGoodList', controller.home.getGoodList);
13 16
 };

+ 3 - 2
app/service/get_classify_goods.js

@@ -207,9 +207,10 @@ class getClassifyGoodsService extends Service {
207 207
         const htmlStr = await driver.getPageSource();
208 208
         const htmlList = self.getListData(htmlStr);
209 209
         arr = arr.concat(htmlList);
210
-        const tagName = '';
210
+        let tagName = '';
211
+        let nextEle;
211 212
         try {
212
-          const nextEle = await driver.findElement(webdriver.By.js(() => document.querySelector("#J_ShopSearchResult > div > div.filter.clearfix.J_TFilter > p > .ui-page-s-next")));
213
+          nextEle = await driver.findElement(webdriver.By.js(() => document.querySelector("#J_ShopSearchResult > div > div.filter.clearfix.J_TFilter > p > .ui-page-s-next")));
213 214
           tagName = await nextEle.getTagName();
214 215
         } catch (error) {
215 216
 

+ 0 - 1
app/service/get_good_detail.js

@@ -71,7 +71,6 @@ class getGoodDetailService extends Service {
71 71
             await driver.sleep(3000);
72 72
             driver.quit();
73 73
 
74
-
75 74
         });
76 75
     }
77 76
 

+ 129 - 0
app/service/get_good_list.js

@@ -0,0 +1,129 @@
1
+const Service = require('egg').Service;
2
+
3
+const webdriver = require('selenium-webdriver');
4
+const cheerio = require('cheerio');
5
+const login = require('../../spider/login');
6
+
7
+class getClassifyService extends Service {
8
+
9
+    list = [];
10
+
11
+    async getData(url) {
12
+
13
+        const log = this.app.loggers.goodListLogger;
14
+
15
+        return new Promise(async (resolve, reject) => {
16
+            try {
17
+
18
+                log.info(`开始获取商品列表: ${url}`);
19
+
20
+                const driver = await login({
21
+                    noImg: true,
22
+                    strategy: 'eager'
23
+                });
24
+                log.info(`登录成功`);
25
+
26
+                await driver.switchTo().newWindow('tab');
27
+
28
+                await driver.get(url);
29
+                await driver.sleep(2000);
30
+
31
+                // 跳转全部列表
32
+                const allEle = await driver.findElement(webdriver.By.js(() => document.querySelector('.all-cats .all-cats-trigger a')));
33
+                const urlList = await allEle.getAttribute('href');
34
+
35
+                await driver.get(urlList);
36
+                await driver.sleep(2000)
37
+
38
+                log.info('跳转全部列表页');
39
+
40
+                const data = await this.eachList(driver);
41
+                this.list = this.list.concat(data);
42
+                log.info('获取完成');
43
+
44
+                resolve(this.list);
45
+                driver.quit();
46
+
47
+            } catch (error) {
48
+                reject(error);
49
+            }
50
+
51
+        });
52
+    }
53
+
54
+    // 遍历列表
55
+    async eachList(driver) {
56
+        const log = this.app.loggers.goodListLogger;
57
+
58
+        let self = this;
59
+        return new Promise((resolve, reject) => {
60
+
61
+            let arr = [];
62
+            async function forList() {
63
+
64
+                // 自动滚动 到 y=20000
65
+                driver.executeScript(function () {
66
+                    let y = 0;
67
+                    let timer = setInterval(() => {
68
+                        y += 50;
69
+                        if (y > 20000) {
70
+                            clearInterval(timer);
71
+                        }
72
+                        window.scrollTo(0, y)
73
+                    }, 10)
74
+                })
75
+
76
+                // 检查基本信息(判断详情加载完成)
77
+                await driver.sleep(20000 / 50 * 10 + 1000);
78
+
79
+                const htmlStr = await driver.getPageSource();
80
+                const htmlList = self.getListData(htmlStr);
81
+                arr = arr.concat(htmlList);
82
+                let tagName = '';
83
+                let nextEle;
84
+                try {
85
+                    nextEle = await driver.findElement(webdriver.By.js(() => document.querySelector("#J_ShopSearchResult > div > div.filter.clearfix.J_TFilter > p > .ui-page-s-next")));
86
+                    tagName = await nextEle.getTagName();
87
+                } catch (error) {
88
+
89
+                }
90
+
91
+                if (tagName === 'a') {
92
+                    log.info('获取下一页');
93
+                    nextEle.click();
94
+                    await driver.sleep(1000);
95
+                    forList();
96
+                } else {
97
+                    resolve(arr);
98
+                }
99
+            }
100
+
101
+            forList();
102
+        });
103
+    }
104
+
105
+    // 获取当前页数据
106
+    getListData(htmlStr) {
107
+        let goodsArr = [];
108
+
109
+        const $ = cheerio.load(htmlStr);
110
+        const list = $('#J_ShopSearchResult .J_TItems .item');
111
+        list.splice(list.length - 8);
112
+        list.each((i, e) => {
113
+            const title = $(e).find('.item-name').text();
114
+            const img = $(e).find('.photo img').attr('src');
115
+            const url = $(e).find('.item-name').attr('href');
116
+            const id = url.replace(/(.+id=)(\d+)(&.+)/igm, '$2');
117
+            const obj = {
118
+                title, img, url, id
119
+            }
120
+            goodsArr.push(obj)
121
+        });
122
+
123
+        return goodsArr;
124
+    }
125
+}
126
+
127
+
128
+
129
+module.exports = getClassifyService;

+ 13 - 1
config/config.default.js

@@ -63,7 +63,19 @@ module.exports = appInfo => {
63 63
       },
64 64
 
65 65
       // 店铺信息日志
66
-      shopInfoLogger: {
66
+      goodListLogger: {
67
+        file: path.join(appInfo.root, 'logs/goodList.log'),
68
+        formatter(meta) {
69
+          return `[${meta.date}] ${meta.message}`;
70
+        },
71
+        // ctx logger
72
+        contextFormatter(meta) {
73
+          return `[${meta.date}] [${meta.ctx.method} ${meta.ctx.url}] ${meta.message}`;
74
+        },
75
+      },
76
+
77
+      // 商品列表日志
78
+      goodListLogger: {
67 79
         file: path.join(appInfo.root, 'logs/shopInfo.log'),
68 80
         formatter(meta) {
69 81
           return `[${meta.date}] ${meta.message}`;

+ 105 - 105
cookie/cookie.json

@@ -1,21 +1,12 @@
1 1
 [
2 2
     {
3 3
         "domain": ".tmall.com",
4
-        "expiry": 1614437175,
4
+        "expiry": 1614587092,
5 5
         "httpOnly": false,
6 6
         "name": "tfstk",
7 7
         "path": "/",
8 8
         "secure": false,
9
-        "value": "ccxGBujExF7s0S_HPcs6F3oKEViRw3uN1n-eYHY3RPKUxk5cWyzr5RHh6CxYl"
10
-    },
11
-    {
12
-        "domain": ".tmall.com",
13
-        "expiry": 1614437175,
14
-        "httpOnly": false,
15
-        "name": "isg",
16
-        "path": "/",
17
-        "secure": false,
18
-        "value": "BJ2dqKnOnnFGqXpcMAZqxMEFrHmXutEMBmY7IV9i2fQjFr1IJwrh3GsURgoQzenE"
9
+        "value": "cAa1B3cT6dv19BS2751E35f1dp3Aw_6ItGMT1l_QU8-rqY1miUkSTCqDKen-O"
19 10
     },
20 11
     {
21 12
         "domain": "list.tmall.com",
@@ -27,40 +18,30 @@
27 18
     },
28 19
     {
29 20
         "domain": ".tmall.com",
30
-        "httpOnly": true,
31
-        "name": "cookie2",
21
+        "expiry": 1614587091,
22
+        "httpOnly": false,
23
+        "name": "l",
32 24
         "path": "/",
33
-        "sameSite": "None",
34
-        "secure": true,
35
-        "value": "154e6a56501de253f421f6acade1345a"
25
+        "secure": false,
26
+        "value": "eBOYFPRcOs7cfXk2BOfanurza77OSIRYYuPzaNbMiOCPODfB5pQAWZPnCJ86C3GVhsMvRuusn_92BeYBq7VonxvttBALurkmn"
36 27
     },
37 28
     {
38
-        "domain": ".tmall.com",
39
-        "expiry": 1914241563,
40
-        "httpOnly": true,
41
-        "name": "enc",
29
+        "domain": "list.tmall.com",
30
+        "expiry": 1601627091,
31
+        "httpOnly": false,
32
+        "name": "pnm_cku822",
42 33
         "path": "/",
43
-        "sameSite": "Lax",
44
-        "secure": true,
45
-        "value": "MaT95uFYDGynG8cKXSw0DhPeUMNmbBVzDipL%2BsJ2d6OJdKtPAq76bQ3M3qnP0mrcY3kAYns9SfO5dl7OBx4G10EDU9wbzUPYWltFX6V4irM%3D"
34
+        "secure": false,
35
+        "value": "098%23E1hvRvvUvbpvUvCkvvvvvjiPnLcvsjtRnLzw1jrCPmPO0jrRRLLOzjiUPLLUzjiWiQhvCvvv9UUtvpvhvvvvvvhCvvOvCvvvphmEvpvVmvvC9j3nuphvmvvv92IntuFMKphv8vvvvUBvpvvyvvvmCyCvmUgvvvWvphvW9pvvvQCvpvs9vvvmFZCv2E9EvpCWCCvLvvaslwet9b8rwAq6D7zvd3ODN%2BClYE7reB61D7zhaXTAVAildExrV8t%2Bm7zWaNpBrkYfkbmDYb8rwAqGznsvjClgonFZ%2BnezrvGCvvpvvPMM"
46 36
     },
47 37
     {
48 38
         "domain": ".tmall.com",
49 39
         "httpOnly": false,
50
-        "name": "uc1",
40
+        "name": "unb",
51 41
         "path": "/",
52 42
         "sameSite": "None",
53 43
         "secure": true,
54
-        "value": "cookie16=UtASsssmPlP%2Ff1IHDsDaPRu%2BPw%3D%3D&pas=0&cookie15=URm48syIIVrSKA%3D%3D&cookie14=UoTV5OJpq8e4oQ%3D%3D&existShop=false&cookie21=VFC%2FuZ9ainBZ"
55
-    },
56
-    {
57
-        "domain": ".tmall.com",
58
-        "expiry": 1614437175,
59
-        "httpOnly": false,
60
-        "name": "l",
61
-        "path": "/",
62
-        "secure": false,
63
-        "value": "eBIg_QKcOREAW_gkBOfanurza77OSIRYYuPzaNbMiOCPOBfB51tdWZPQMN86C3GVhsgpRuSxXm92BeYBq7VonxvttBALurkmn"
44
+        "value": "2209079444797"
64 45
     },
65 46
     {
66 47
         "domain": ".tmall.com",
@@ -73,109 +54,120 @@
73 54
     },
74 55
     {
75 56
         "domain": ".tmall.com",
76
-        "httpOnly": false,
77
-        "name": "dnk",
57
+        "httpOnly": true,
58
+        "name": "cookie2",
78 59
         "path": "/",
79 60
         "sameSite": "None",
80 61
         "secure": true,
81
-        "value": "cr_150"
62
+        "value": "19bf3d57be5ddff83a5913649916e195"
82 63
     },
83 64
     {
84 65
         "domain": ".tmall.com",
85 66
         "httpOnly": true,
86
-        "name": "sgcookie",
67
+        "name": "uc3",
87 68
         "path": "/",
88 69
         "sameSite": "None",
89 70
         "secure": true,
90
-        "value": "E100d6LPB%2BGzGTHh%2BYgmE%2FdIO6%2FMrZ5LrWLJFqAkLJB3CqSIs6JYgY2m0wjKr3d6%2FVm4FdtbAD74kTnOotD8fGrYAA%3D%3D"
71
+        "value": "id2=UUphw2VSPKDoJSjKzw%3D%3D&nk2=AGioONbo&vt3=F8dCufXGBXFNUREWrmw%3D&lg2=VT5L2FSpMGV7TQ%3D%3D"
91 72
     },
92 73
     {
93 74
         "domain": ".tmall.com",
94
-        "httpOnly": true,
95
-        "name": "uc4",
75
+        "httpOnly": false,
76
+        "name": "uc1",
96 77
         "path": "/",
97 78
         "sameSite": "None",
98 79
         "secure": true,
99
-        "value": "id4=0%40U2grGNp7s350SOTPb%2BaHY7EWclcAi29V&nk4=0%40AgbxYJ9INhjQhPKEbkONU%2F4%3D"
80
+        "value": "cookie16=V32FPkk%2FxXMk5UvIbNtImtMfJQ%3D%3D&existShop=false&cookie14=UoTV5YzeUhtm2g%3D%3D&pas=0&cookie21=VFC%2FuZ9ainBZ&cookie15=UtASsssmOIJ0bQ%3D%3D"
81
+    },
82
+    {
83
+        "domain": ".list.tmall.com",
84
+        "expiry": 1914393913,
85
+        "httpOnly": false,
86
+        "name": "_med",
87
+        "path": "/",
88
+        "sameSite": "Lax",
89
+        "secure": true,
90
+        "value": "dw:1228.8&dh:691.2&pw:1536&ph:864&ist:0"
100 91
     },
101 92
     {
102 93
         "domain": ".tmall.com",
103 94
         "httpOnly": true,
104
-        "name": "uc3",
95
+        "name": "sgcookie",
105 96
         "path": "/",
106 97
         "sameSite": "None",
107 98
         "secure": true,
108
-        "value": "lg2=U%2BGCWk%2F75gdr5Q%3D%3D&vt3=F8dCufXEB%2BjluNqon28%3D&id2=UUphw2VSPKDoJSjKzw%3D%3D&nk2=AGioONbo"
99
+        "value": "ECc9Gq8PUByj1Na%2FRc5Qx"
109 100
     },
110 101
     {
111 102
         "domain": ".tmall.com",
103
+        "expiry": 2229755057,
112 104
         "httpOnly": false,
113
-        "name": "unb",
105
+        "name": "cna",
114 106
         "path": "/",
115 107
         "sameSite": "None",
116 108
         "secure": true,
117
-        "value": "2209079444797"
109
+        "value": "sUTWF9O0bg4CATz/5/mJPx/r"
118 110
     },
119 111
     {
120 112
         "domain": ".tmall.com",
121
-        "expiry": 1598967956,
122 113
         "httpOnly": false,
123
-        "name": "xlly_s",
114
+        "name": "login",
124 115
         "path": "/",
125
-        "sameSite": "Lax",
116
+        "sameSite": "None",
126 117
         "secure": true,
127
-        "value": "1"
118
+        "value": "true"
128 119
     },
129 120
     {
130 121
         "domain": ".tmall.com",
131 122
         "httpOnly": false,
132
-        "name": "_l_g_",
123
+        "name": "_tb_token_",
133 124
         "path": "/",
134 125
         "sameSite": "None",
135 126
         "secure": true,
136
-        "value": "Ug%3D%3D"
127
+        "value": "3eb135f57e8e5"
137 128
     },
138 129
     {
139 130
         "domain": ".tmall.com",
140 131
         "httpOnly": true,
141
-        "name": "cookie17",
132
+        "name": "uc4",
142 133
         "path": "/",
143 134
         "sameSite": "None",
144 135
         "secure": true,
145
-        "value": "UUphw2VSPKDoJSjKzw%3D%3D"
136
+        "value": "nk4=0%40AgbxYJ9INhjQhPNLU%2Fuvq%2F0%3D&id4=0%40U2grGNp7s350SOTPb%2BaHY7EXvVLa72l9"
146 137
     },
147 138
     {
148
-        "domain": ".list.tmall.com",
149
-        "httpOnly": false,
150
-        "name": "res",
139
+        "domain": ".tmall.com",
140
+        "expiry": 1914241563,
141
+        "httpOnly": true,
142
+        "name": "enc",
151 143
         "path": "/",
152 144
         "sameSite": "Lax",
153 145
         "secure": true,
154
-        "value": "scroll%3A1019*6478-client%3A1019*675-offset%3A1019*6478-screen%3A1536*864"
146
+        "value": "MaT95uFYDGynG8cKXSw0DhPeUMNmbBVzDipL%2BsJ2d6OJdKtPAq76bQ3M3qnP0mrcY3kAYns9SfO5dl7OBx4G10EDU9wbzUPYWltFX6V4irM%3D"
155 147
     },
156 148
     {
157
-        "domain": ".list.tmall.com",
158
-        "expiry": 1601475288,
149
+        "domain": "list.tmall.com",
150
+        "expiry": 1914395091,
159 151
         "httpOnly": false,
160
-        "name": "pnm_cku822",
152
+        "name": "_med",
161 153
         "path": "/",
162
-        "sameSite": "Lax",
163
-        "secure": true,
164
-        "value": "098%23E1hvrvvUvbpvUpCkvvvvvjiPnLL9gj38n2Lylj3mPmPv0j1HR2LyQjtnPLdW1jE8P4wCvvBvpvpZ2QhvCPMMvvmEvpvVpyUUCCA4uphvmhCvCnhkftN%2BKphv8hCvvmpvvhCEphvpWvvvpKHvpC9vvvC2U6CvVvvvvhnqphvpfvvvp0ZEvpCWpW8Vv8Wpwh%2BFp%2B0xhE1TmmxBlwyzhmx%2FaoF6D40XjZODNr1ld3ODN5piYh6TRoDjEQeXAfJ0v0%2B3ZQ0YWdEI2B%2BKa4p7%2B3%2BdjomxfphCvvXvppvvvvvtvpvhphvvvv%3D%3D"
154
+        "secure": false,
155
+        "value": "dw:1228.8&dh:691.2&pw:1536&ph:864&ist:0"
165 156
     },
166 157
     {
167
-        "domain": "list.tmall.com",
168
-        "expiry": 1601477175,
169
-        "httpOnly": false,
170
-        "name": "pnm_cku822",
158
+        "domain": ".tmall.com",
159
+        "httpOnly": true,
160
+        "name": "cookie1",
171 161
         "path": "/",
172
-        "secure": false,
173
-        "value": "098%23E1hvwpvUvbpvUvCkvvvvvjiPnLL9gjtPRs5OAjrCPmPO0j1bPF5wQj1WP2SU1jDWRphvCvvvvvvPvpvhvv2MMqyCvm9vvvmhphvvEvvvv9XvpvkRvvv2vhCv2UhvvvWvphvWgvvvvIlvpvAOkphvC99vvOCgL4yCvv9vvUvTCP%2FVHpyCvhQUba9vClsvaNoxdX%2BaWXxr1j7J%2B3%2BdafmxfBkKNB3r1j7Q%2Bul1bPoxfwmKHkx%2FQjc6kmgGEBX1gX7xbFQeHjj3DOZKPmZ7kbmxfXKKvphvC9vhvvCvp8wCvvpvvUmm"
162
+        "sameSite": "None",
163
+        "secure": true,
164
+        "value": "UoYY5pPX%2F4qYXmjLO4nDTKvKkulnxBNok4hiG9327QA%3D"
174 165
     },
175 166
     {
176 167
         "domain": ".tmall.com",
168
+        "expiry": 1630599890,
177 169
         "httpOnly": false,
178
-        "name": "tracknick",
170
+        "name": "lid",
179 171
         "path": "/",
180 172
         "sameSite": "None",
181 173
         "secure": true,
@@ -184,103 +176,111 @@
184 176
     {
185 177
         "domain": ".tmall.com",
186 178
         "httpOnly": false,
187
-        "name": "_nk_",
179
+        "name": "dnk",
188 180
         "path": "/",
189 181
         "sameSite": "None",
190 182
         "secure": true,
191 183
         "value": "cr_150"
192 184
     },
193 185
     {
194
-        "domain": "list.tmall.com",
195
-        "expiry": 1914245175,
186
+        "domain": ".tmall.com",
196 187
         "httpOnly": false,
197
-        "name": "_med",
188
+        "name": "t",
198 189
         "path": "/",
199
-        "secure": false,
200
-        "value": "dw:1228.8&dh:691.2&pw:1536&ph:864&ist:0"
190
+        "sameSite": "None",
191
+        "secure": true,
192
+        "value": "74ba1b6471c96de5c387cca2e206e672"
201 193
     },
202 194
     {
203 195
         "domain": ".tmall.com",
204 196
         "httpOnly": false,
205
-        "name": "login",
197
+        "name": "_nk_",
206 198
         "path": "/",
207 199
         "sameSite": "None",
208 200
         "secure": true,
209
-        "value": "true"
201
+        "value": "cr_150"
210 202
     },
211 203
     {
212 204
         "domain": ".tmall.com",
205
+        "expiry": 1614587091,
213 206
         "httpOnly": false,
214
-        "name": "t",
207
+        "name": "isg",
215 208
         "path": "/",
216
-        "sameSite": "None",
217
-        "secure": true,
218
-        "value": "a1ef31911cc6e67f557b22ebc9be17ba"
209
+        "secure": false,
210
+        "value": "BDs7zvjg4A1vB9y5IHgpGowHyh-lkE-SDY5hhy34FzpRjFtutWDf4llOoizCt6eK"
219 211
     },
220 212
     {
221 213
         "domain": ".tmall.com",
222 214
         "httpOnly": false,
223
-        "name": "_tb_token_",
215
+        "name": "sg",
224 216
         "path": "/",
225 217
         "sameSite": "None",
226 218
         "secure": true,
227
-        "value": "f7e6b1b863b50"
219
+        "value": "079"
228 220
     },
229 221
     {
230 222
         "domain": ".tmall.com",
231
-        "httpOnly": false,
232
-        "name": "csg",
223
+        "httpOnly": true,
224
+        "name": "cookie17",
233 225
         "path": "/",
234 226
         "sameSite": "None",
235 227
         "secure": true,
236
-        "value": "bc783854"
228
+        "value": "UUphw2VSPKDoJSjKzw%3D%3D"
237 229
     },
238 230
     {
239
-        "domain": ".tmall.com",
231
+        "domain": ".list.tmall.com",
232
+        "expiry": 1601515957,
240 233
         "httpOnly": false,
241
-        "name": "sg",
234
+        "name": "pnm_cku822",
242 235
         "path": "/",
243
-        "sameSite": "None",
236
+        "sameSite": "Lax",
244 237
         "secure": true,
245
-        "value": "079"
238
+        "value": "098%23E1hvZpvUvbpvUpCkvvvvvjiPnLLyAj3CRLS9AjrCPmPWsj1hRsFpsj1ER25WsjnbR9GCvvLMMQvvvphvC9mvphvvvbyCvmFMM6CYMMMYp9vvBhgvvvHBvvC8o9vv9Dvvvhi8vvmmPvvvBHgvvUVouphvmvvvpLZabLRJkphvC9hvpyP9lvyCvhQmQNj1jaoK5F%2FAVAdWaB4AdX3sbSoxdX9fdeO2fwo4d34AVAdZaXgM%2Bul1p57Q%2Bu0O5C69D70Oeug7Ecqhs8TJVXilZtxreEuKHkx%2FRphvCvvvphm5vpvhvvCCBv%3D%3D"
246 239
     },
247 240
     {
248 241
         "domain": ".tmall.com",
249
-        "expiry": 1630449974,
250 242
         "httpOnly": false,
251
-        "name": "lid",
243
+        "name": "csg",
252 244
         "path": "/",
253 245
         "sameSite": "None",
254 246
         "secure": true,
255
-        "value": "cr_150"
247
+        "value": "8e929d8a"
256 248
     },
257 249
     {
258
-        "domain": ".list.tmall.com",
259
-        "expiry": 1914245062,
250
+        "domain": ".tmall.com",
251
+        "expiry": 1599114966,
260 252
         "httpOnly": false,
261
-        "name": "_med",
253
+        "name": "xlly_s",
262 254
         "path": "/",
263 255
         "sameSite": "Lax",
264 256
         "secure": true,
265
-        "value": "dw:1228.8&dh:691.2&pw:1536&ph:864&ist:0"
257
+        "value": "1"
266 258
     },
267 259
     {
268 260
         "domain": ".tmall.com",
269
-        "expiry": 1914245169,
270 261
         "httpOnly": false,
271
-        "name": "cna",
262
+        "name": "tracknick",
272 263
         "path": "/",
273 264
         "sameSite": "None",
274 265
         "secure": true,
275
-        "value": "L/vTFw7oRSQCATz/5/gXMY7y"
266
+        "value": "cr_150"
276 267
     },
277 268
     {
278 269
         "domain": ".tmall.com",
279
-        "httpOnly": true,
280
-        "name": "cookie1",
270
+        "httpOnly": false,
271
+        "name": "_l_g_",
281 272
         "path": "/",
282 273
         "sameSite": "None",
283 274
         "secure": true,
284
-        "value": "UoYY5pPX%2F4qYXmjLO4nDTKvKkulnxBNok4hiG9327QA%3D"
275
+        "value": "Ug%3D%3D"
276
+    },
277
+    {
278
+        "domain": ".list.tmall.com",
279
+        "httpOnly": false,
280
+        "name": "res",
281
+        "path": "/",
282
+        "sameSite": "Lax",
283
+        "secure": true,
284
+        "value": "scroll%3A1019*6478-client%3A1019*675-offset%3A1019*6478-screen%3A1536*864"
285 285
     }
286 286
 ]

+ 1 - 1
spider/login.js

@@ -11,7 +11,7 @@ const caps = webdriver.Capabilities.chrome();
11 11
 
12 12
 const options = new Options();
13 13
 // 设置chrome.exe 位置
14
-options.setChromeBinaryPath('C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe');
14
+options.setChromeBinaryPath('C:\\Users\\cr150\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe');
15 15
 
16 16
 // 设置为开发者模式,防止被各大网站识别出来使用了Selenium
17 17
 options.addArguments('disable-blink-features=AutomationControlled')

+ 4 - 1
test.txt

@@ -17,4 +17,7 @@ http://127.0.0.1:7001/getClassify?url=https%3A%2F%2Flumn.tmall.com%2F%3Fspm%3Da2
17 17
 http://127.0.0.1:7001/getClassifyGoods?url=https%3A%2F%2Flumn.tmall.com%2F%3Fspm%3Da220o.1000855.1997427721.d4918089.1de54ba3haH9fD
18 18
 
19 19
 // 请求商品详情
20
-http://127.0.0.1:7001/getGoodDetail?url=https%3A%2F%2Fdetail.tmall.com%2Fitem.htm%3Fspm%3Da220m.1000858.1000725.36.4d3457ddDpsZdy%26id%3D611982420654%26skuId%3D4312674497656%26user_id%3D468175467%26cat_id%3D2%26is_b%3D1%26rn%3Db64961bddcea2b495376d2428795e257
20
+http://127.0.0.1:7001/getGoodDetail?url=https%3A%2F%2Fdetail.tmall.com%2Fitem.htm%3Fspm%3Da220m.1000858.1000725.36.4d3457ddDpsZdy%26id%3D611982420654%26skuId%3D4312674497656%26user_id%3D468175467%26cat_id%3D2%26is_b%3D1%26rn%3Db64961bddcea2b495376d2428795e257
21
+
22
+// 请求商品列表
23
+http://127.0.0.1:7001/getGoodList?url=https%3A%2F%2Fdetail.tmall.com%2Fitem.htm%3Fspm%3Da220m.1000858.1000725.36.4d3457ddDpsZdy%26id%3D611982420654%26skuId%3D4312674497656%26user_id%3D468175467%26cat_id%3D2%26is_b%3D1%26rn%3Db64961bddcea2b495376d2428795e257