teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

2020/09/12 07:38

投稿

lobster
lobster

スコア0

title CHANGED
File without changes
body CHANGED
@@ -20,98 +20,9 @@
20
20
 
21
21
  ### 該当のソースコード
22
22
 
23
- ```python
23
+ ```
24
- ##### 省略 #####
25
24
 
26
- scope = ["https://spreadsheets.google.com/feeds",
27
- "https://www.googleapis.com/auth/drive"]
28
- credentials = ServiceAccountCredentials.from_json_keyfile_name("jsonファイル", scope)
29
- gc = gspread.authorize(credentials)
30
- wks = gc.open_by_key("スプレッドシートキー").worksheet("シート名")
31
25
 
32
- driver_file = "../chromedriver"
33
- driver = webdriver.Chrome(driver_file)
34
-
35
-
36
- #ログイン
37
- url = "url記入"
38
- driver.get(url)
39
- username_element = driver.find_element_by_name("cuser")
40
- password_element = driver.find_element_by_name("cpass")
41
- username_element.send_keys("ID")
42
- password_element.send_keys("passward")
43
- login_button_element = driver.find_element_by_name("save")
44
- login_button_element.click()
45
-
46
- count = 0 #ループ注文する場合
47
- multiple_order = 0 #個人の注文種類数判別
48
- order = len(wks.col_values(3))
49
- print(f"{order - 1}注文")
50
-
51
- for x in range(2, order + 1):
52
-
53
- #完了してるものは飛ばす
54
- if wks.acell("A" + str(x)).value != "未":
55
- continue
56
-
57
- #情報取得
58
- item_url = wks.acell("D" + str(x)).value
59
- quantity = wks.acell("E" + str(x)).value
60
- name = wks.acell("F" + str(x)).value
61
- postal_code = re.split("-", wks.acell("I" + str(x)).value)
62
- adress = wks.acell("G" + str(x)).value
63
- prefecture = re.match(".{2,3}?[都道府県]", adress).group()
64
- city = re.sub(prefecture, "", adress)
65
- street = wks.acell("H" + str(x)).value
66
- phone_number = wks.acell("J" + str(x)).value
67
- driver.get(item_url)
68
-
69
- #カートに入れる
70
- buy_quantity = driver.find_element_by_name("order_number")
71
- buy_select_quantity = Select(buy_quantity)
72
- buy_select_quantity.select_by_value(quantity)
73
- driver.find_element_by_class_name("image-btn").click()
74
- time.sleep(1)
75
- #複数注文の場合 nameとstreetとphone_numberで判断
76
- 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):
77
- multiple_order += 1
78
- continue
79
-
80
- #カートを見る
81
- driver.find_element_by_class_name("top2").click()
82
- time.sleep(1)
83
-
84
- #精算を始める
85
- driver.find_element_by_class_name("image-btn4").click()
86
- time.sleep(2)
87
-
88
- #お届け先を指定
89
- 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()
90
- time.sleep(2)
91
- 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")
92
- name_box = table.find_element_by_name("SENDNAME")
93
- postal_code_box1 = table.find_element_by_name("SENDZIP1")
94
- postal_code_box2 = table.find_element_by_name("SENDZIP2")
95
- prefecture_box = driver.find_element_by_name("SENDSTATES")
96
- prefecture_select_box = Select(prefecture_box)
97
- city_box = table.find_element_by_name("SENDCITY")
98
- street_box = table.find_element_by_name("SENDSTREET")
99
- tel_box = table.find_element_by_name("SENDTEL")
100
- direct_delivery = table.find_element_by_name("DIRECT")
101
-
102
- name_box.send_keys(name)
103
- postal_code_box1.send_keys(postal_code[0])
104
- postal_code_box2.send_keys(postal_code[1])
105
- prefecture_select_box.select_by_visible_text(prefecture)
106
- city_box.send_keys(city)
107
- street_box.send_keys(street)
108
- tel_box.send_keys(phone_number)
109
- direct_delivery.click()
110
- driver.find_element_by_class_name("image-btn10").click()
111
- time.sleep(1)
112
-
113
- ##### 省略 #####
114
-
115
26
  ```
116
27
 
117
28
  ### 試したこと

1

ソースコードを追加

2020/09/12 07:38

投稿

lobster
lobster

スコア0

title CHANGED
File without changes
body CHANGED
@@ -20,8 +20,98 @@
20
20
 
21
21
  ### 該当のソースコード
22
22
 
23
- ```ここに言語名を入力
23
+ ```python
24
+ ##### 省略 #####
25
+
26
+ scope = ["https://spreadsheets.google.com/feeds",
27
+ "https://www.googleapis.com/auth/drive"]
28
+ credentials = ServiceAccountCredentials.from_json_keyfile_name("jsonファイル", scope)
29
+ gc = gspread.authorize(credentials)
30
+ wks = gc.open_by_key("スプレッドシートキー").worksheet("シート名")
31
+
32
+ driver_file = "../chromedriver"
33
+ driver = webdriver.Chrome(driver_file)
34
+
35
+
36
+ #ログイン
37
+ url = "url記入"
38
+ driver.get(url)
39
+ username_element = driver.find_element_by_name("cuser")
40
+ password_element = driver.find_element_by_name("cpass")
41
+ username_element.send_keys("ID")
42
+ password_element.send_keys("passward")
43
+ login_button_element = driver.find_element_by_name("save")
44
+ login_button_element.click()
45
+
46
+ count = 0 #ループ注文する場合
47
+ multiple_order = 0 #個人の注文種類数判別
48
+ order = len(wks.col_values(3))
49
+ print(f"{order - 1}注文")
50
+
51
+ for x in range(2, order + 1):
52
+
53
+ #完了してるものは飛ばす
54
+ if wks.acell("A" + str(x)).value != "未":
55
+ continue
56
+
57
+ #情報取得
58
+ item_url = wks.acell("D" + str(x)).value
59
+ quantity = wks.acell("E" + str(x)).value
60
+ name = wks.acell("F" + str(x)).value
61
+ postal_code = re.split("-", wks.acell("I" + str(x)).value)
62
+ adress = wks.acell("G" + str(x)).value
63
+ prefecture = re.match(".{2,3}?[都道府県]", adress).group()
64
+ city = re.sub(prefecture, "", adress)
65
+ street = wks.acell("H" + str(x)).value
66
+ phone_number = wks.acell("J" + str(x)).value
67
+ driver.get(item_url)
68
+
69
+ #カートに入れる
70
+ buy_quantity = driver.find_element_by_name("order_number")
71
+ buy_select_quantity = Select(buy_quantity)
72
+ buy_select_quantity.select_by_value(quantity)
73
+ driver.find_element_by_class_name("image-btn").click()
74
+ time.sleep(1)
75
+ #複数注文の場合 nameとstreetとphone_numberで判断
76
+ 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):
77
+ multiple_order += 1
78
+ continue
79
+
24
- スコード
80
+ #カトを見る
81
+ driver.find_element_by_class_name("top2").click()
82
+ time.sleep(1)
83
+
84
+ #精算を始める
85
+ driver.find_element_by_class_name("image-btn4").click()
86
+ time.sleep(2)
87
+
88
+ #お届け先を指定
89
+ 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()
90
+ time.sleep(2)
91
+ 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")
92
+ name_box = table.find_element_by_name("SENDNAME")
93
+ postal_code_box1 = table.find_element_by_name("SENDZIP1")
94
+ postal_code_box2 = table.find_element_by_name("SENDZIP2")
95
+ prefecture_box = driver.find_element_by_name("SENDSTATES")
96
+ prefecture_select_box = Select(prefecture_box)
97
+ city_box = table.find_element_by_name("SENDCITY")
98
+ street_box = table.find_element_by_name("SENDSTREET")
99
+ tel_box = table.find_element_by_name("SENDTEL")
100
+ direct_delivery = table.find_element_by_name("DIRECT")
101
+
102
+ name_box.send_keys(name)
103
+ postal_code_box1.send_keys(postal_code[0])
104
+ postal_code_box2.send_keys(postal_code[1])
105
+ prefecture_select_box.select_by_visible_text(prefecture)
106
+ city_box.send_keys(city)
107
+ street_box.send_keys(street)
108
+ tel_box.send_keys(phone_number)
109
+ direct_delivery.click()
110
+ driver.find_element_by_class_name("image-btn10").click()
111
+ time.sleep(1)
112
+
113
+ ##### 省略 #####
114
+
25
115
  ```
26
116
 
27
117
  ### 試したこと