質問編集履歴

2

2020/09/12 07:38

投稿

lobster
lobster

スコア0

test CHANGED
File without changes
test CHANGED
@@ -42,187 +42,9 @@
42
42
 
43
43
 
44
44
 
45
- ```python
45
+ ```
46
-
47
- ##### 省略 #####
48
46
 
49
47
 
50
-
51
- scope = ["https://spreadsheets.google.com/feeds",
52
-
53
- "https://www.googleapis.com/auth/drive"]
54
-
55
- credentials = ServiceAccountCredentials.from_json_keyfile_name("jsonファイル", scope)
56
-
57
- gc = gspread.authorize(credentials)
58
-
59
- wks = gc.open_by_key("スプレッドシートキー").worksheet("シート名")
60
-
61
-
62
-
63
- driver_file = "../chromedriver"
64
-
65
- driver = webdriver.Chrome(driver_file)
66
-
67
-
68
-
69
-
70
-
71
- #ログイン
72
-
73
- url = "url記入"
74
-
75
- driver.get(url)
76
-
77
- username_element = driver.find_element_by_name("cuser")
78
-
79
- password_element = driver.find_element_by_name("cpass")
80
-
81
- username_element.send_keys("ID")
82
-
83
- password_element.send_keys("passward")
84
-
85
- login_button_element = driver.find_element_by_name("save")
86
-
87
- login_button_element.click()
88
-
89
-
90
-
91
- count = 0 #ループ注文する場合
92
-
93
- multiple_order = 0 #個人の注文種類数判別
94
-
95
- order = len(wks.col_values(3))
96
-
97
- print(f"{order - 1}注文")
98
-
99
-
100
-
101
- for x in range(2, order + 1):
102
-
103
-
104
-
105
- #完了してるものは飛ばす
106
-
107
- if wks.acell("A" + str(x)).value != "未":
108
-
109
- continue
110
-
111
-
112
-
113
- #情報取得
114
-
115
- item_url = wks.acell("D" + str(x)).value
116
-
117
- quantity = wks.acell("E" + str(x)).value
118
-
119
- name = wks.acell("F" + str(x)).value
120
-
121
- postal_code = re.split("-", wks.acell("I" + str(x)).value)
122
-
123
- adress = wks.acell("G" + str(x)).value
124
-
125
- prefecture = re.match(".{2,3}?[都道府県]", adress).group()
126
-
127
- city = re.sub(prefecture, "", adress)
128
-
129
- street = wks.acell("H" + str(x)).value
130
-
131
- phone_number = wks.acell("J" + str(x)).value
132
-
133
- driver.get(item_url)
134
-
135
-
136
-
137
- #カートに入れる
138
-
139
- buy_quantity = driver.find_element_by_name("order_number")
140
-
141
- buy_select_quantity = Select(buy_quantity)
142
-
143
- buy_select_quantity.select_by_value(quantity)
144
-
145
- driver.find_element_by_class_name("image-btn").click()
146
-
147
- time.sleep(1)
148
-
149
- #複数注文の場合 nameとstreetとphone_numberで判断
150
-
151
- if (name == wks.acell("F" + str(x + 1)).value and street == wks.acell("H" + str(x + 1)).value and phone_number == wks.acell("J" + str(x + 1)).value):
152
-
153
- multiple_order += 1
154
-
155
- continue
156
-
157
-
158
-
159
- #カートを見る
160
-
161
- driver.find_element_by_class_name("top2").click()
162
-
163
- time.sleep(1)
164
-
165
-
166
-
167
- #精算を始める
168
-
169
- driver.find_element_by_class_name("image-btn4").click()
170
-
171
- time.sleep(2)
172
-
173
-
174
-
175
- #お届け先を指定
176
-
177
- driver.find_element_by_xpath("/html/body/table[2]/tbody/tr/td[2]/table/tbody/tr/td/p[1]/table[2]/tbody/tr[9]/td/span/input[1]").click()
178
-
179
- time.sleep(2)
180
-
181
- table = driver.find_element_by_xpath("/html/body/table[2]/tbody/tr/td[2]/table/tbody/tr/td/p[1]/table[2]/tbody/tr[11]/td")
182
-
183
- name_box = table.find_element_by_name("SENDNAME")
184
-
185
- postal_code_box1 = table.find_element_by_name("SENDZIP1")
186
-
187
- postal_code_box2 = table.find_element_by_name("SENDZIP2")
188
-
189
- prefecture_box = driver.find_element_by_name("SENDSTATES")
190
-
191
- prefecture_select_box = Select(prefecture_box)
192
-
193
- city_box = table.find_element_by_name("SENDCITY")
194
-
195
- street_box = table.find_element_by_name("SENDSTREET")
196
-
197
- tel_box = table.find_element_by_name("SENDTEL")
198
-
199
- direct_delivery = table.find_element_by_name("DIRECT")
200
-
201
-
202
-
203
- name_box.send_keys(name)
204
-
205
- postal_code_box1.send_keys(postal_code[0])
206
-
207
- postal_code_box2.send_keys(postal_code[1])
208
-
209
- prefecture_select_box.select_by_visible_text(prefecture)
210
-
211
- city_box.send_keys(city)
212
-
213
- street_box.send_keys(street)
214
-
215
- tel_box.send_keys(phone_number)
216
-
217
- direct_delivery.click()
218
-
219
- driver.find_element_by_class_name("image-btn10").click()
220
-
221
- time.sleep(1)
222
-
223
-
224
-
225
- ##### 省略 #####
226
48
 
227
49
 
228
50
 

1

ソースコードを追加

2020/09/12 07:38

投稿

lobster
lobster

スコア0

test CHANGED
File without changes
test CHANGED
@@ -42,9 +42,189 @@
42
42
 
43
43
 
44
44
 
45
- ```ここに言語名を入力
45
+ ```python
46
+
46
-
47
+ ##### 省略 #####
48
+
49
+
50
+
51
+ scope = ["https://spreadsheets.google.com/feeds",
52
+
53
+ "https://www.googleapis.com/auth/drive"]
54
+
55
+ credentials = ServiceAccountCredentials.from_json_keyfile_name("jsonファイル", scope)
56
+
57
+ gc = gspread.authorize(credentials)
58
+
59
+ wks = gc.open_by_key("スプレッドシートキー").worksheet("シート名")
60
+
61
+
62
+
63
+ driver_file = "../chromedriver"
64
+
65
+ driver = webdriver.Chrome(driver_file)
66
+
67
+
68
+
69
+
70
+
71
+ #ログイン
72
+
73
+ url = "url記入"
74
+
75
+ driver.get(url)
76
+
77
+ username_element = driver.find_element_by_name("cuser")
78
+
79
+ password_element = driver.find_element_by_name("cpass")
80
+
81
+ username_element.send_keys("ID")
82
+
83
+ password_element.send_keys("passward")
84
+
85
+ login_button_element = driver.find_element_by_name("save")
86
+
87
+ login_button_element.click()
88
+
89
+
90
+
91
+ count = 0 #ループ注文する場合
92
+
93
+ multiple_order = 0 #個人の注文種類数判別
94
+
95
+ order = len(wks.col_values(3))
96
+
97
+ print(f"{order - 1}注文")
98
+
99
+
100
+
101
+ for x in range(2, order + 1):
102
+
103
+
104
+
105
+ #完了してるものは飛ばす
106
+
107
+ if wks.acell("A" + str(x)).value != "未":
108
+
109
+ continue
110
+
111
+
112
+
113
+ #情報取得
114
+
115
+ item_url = wks.acell("D" + str(x)).value
116
+
117
+ quantity = wks.acell("E" + str(x)).value
118
+
119
+ name = wks.acell("F" + str(x)).value
120
+
121
+ postal_code = re.split("-", wks.acell("I" + str(x)).value)
122
+
123
+ adress = wks.acell("G" + str(x)).value
124
+
125
+ prefecture = re.match(".{2,3}?[都道府県]", adress).group()
126
+
127
+ city = re.sub(prefecture, "", adress)
128
+
129
+ street = wks.acell("H" + str(x)).value
130
+
131
+ phone_number = wks.acell("J" + str(x)).value
132
+
133
+ driver.get(item_url)
134
+
135
+
136
+
137
+ #カートに入れる
138
+
139
+ buy_quantity = driver.find_element_by_name("order_number")
140
+
141
+ buy_select_quantity = Select(buy_quantity)
142
+
143
+ buy_select_quantity.select_by_value(quantity)
144
+
145
+ driver.find_element_by_class_name("image-btn").click()
146
+
147
+ time.sleep(1)
148
+
149
+ #複数注文の場合 nameとstreetとphone_numberで判断
150
+
151
+ if (name == wks.acell("F" + str(x + 1)).value and street == wks.acell("H" + str(x + 1)).value and phone_number == wks.acell("J" + str(x + 1)).value):
152
+
153
+ multiple_order += 1
154
+
155
+ continue
156
+
157
+
158
+
47
- スコード
159
+ #カトを見る
160
+
161
+ driver.find_element_by_class_name("top2").click()
162
+
163
+ time.sleep(1)
164
+
165
+
166
+
167
+ #精算を始める
168
+
169
+ driver.find_element_by_class_name("image-btn4").click()
170
+
171
+ time.sleep(2)
172
+
173
+
174
+
175
+ #お届け先を指定
176
+
177
+ driver.find_element_by_xpath("/html/body/table[2]/tbody/tr/td[2]/table/tbody/tr/td/p[1]/table[2]/tbody/tr[9]/td/span/input[1]").click()
178
+
179
+ time.sleep(2)
180
+
181
+ table = driver.find_element_by_xpath("/html/body/table[2]/tbody/tr/td[2]/table/tbody/tr/td/p[1]/table[2]/tbody/tr[11]/td")
182
+
183
+ name_box = table.find_element_by_name("SENDNAME")
184
+
185
+ postal_code_box1 = table.find_element_by_name("SENDZIP1")
186
+
187
+ postal_code_box2 = table.find_element_by_name("SENDZIP2")
188
+
189
+ prefecture_box = driver.find_element_by_name("SENDSTATES")
190
+
191
+ prefecture_select_box = Select(prefecture_box)
192
+
193
+ city_box = table.find_element_by_name("SENDCITY")
194
+
195
+ street_box = table.find_element_by_name("SENDSTREET")
196
+
197
+ tel_box = table.find_element_by_name("SENDTEL")
198
+
199
+ direct_delivery = table.find_element_by_name("DIRECT")
200
+
201
+
202
+
203
+ name_box.send_keys(name)
204
+
205
+ postal_code_box1.send_keys(postal_code[0])
206
+
207
+ postal_code_box2.send_keys(postal_code[1])
208
+
209
+ prefecture_select_box.select_by_visible_text(prefecture)
210
+
211
+ city_box.send_keys(city)
212
+
213
+ street_box.send_keys(street)
214
+
215
+ tel_box.send_keys(phone_number)
216
+
217
+ direct_delivery.click()
218
+
219
+ driver.find_element_by_class_name("image-btn10").click()
220
+
221
+ time.sleep(1)
222
+
223
+
224
+
225
+ ##### 省略 #####
226
+
227
+
48
228
 
49
229
  ```
50
230