質問編集履歴
3
解決しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -9,172 +9,3 @@
|
|
9
9
|
|
10
10
|
このようなサイトから値をうまく取得する方法を、
|
11
11
|
ご教授いただきたく思います。
|
12
|
-
|
13
|
-
from cgitb import html
|
14
|
-
from selenium import webdriver
|
15
|
-
from selenium.webdriver.chrome import service
|
16
|
-
from selenium.webdriver.chrome.options import Options
|
17
|
-
from time import sleep
|
18
|
-
from bs4 import BeautifulSoup
|
19
|
-
import csv
|
20
|
-
|
21
|
-
#最初のページ
|
22
|
-
url = "http://www.jasdec.com/reading/sbmei.php"
|
23
|
-
|
24
|
-
# ヘッドレスモードの設定。
|
25
|
-
# True => ブラウザを描写しない。
|
26
|
-
# False => ブラウザを描写する。
|
27
|
-
options = Options()
|
28
|
-
options.add_argument('--headless')
|
29
|
-
|
30
|
-
#ChromeDriverのパスを変数に設定
|
31
|
-
ChromeDriver = r"C:\Users\k-saito\Downloads\chromedriver_win32\chromedriver.exe"
|
32
|
-
#ChromeDriverのstartとstopを制御するServiceオブジェクトを介してパスを渡す
|
33
|
-
chrome_service = service.Service(executable_path=ChromeDriver)
|
34
|
-
|
35
|
-
#Chromeを起動
|
36
|
-
driver = webdriver.Chrome(service=chrome_service)
|
37
|
-
|
38
|
-
#保振のサイトに遷移
|
39
|
-
driver.get(url)
|
40
|
-
#カレントウインドウを最大化する
|
41
|
-
driver.maximize_window()
|
42
|
-
|
43
|
-
#テキストボックスを指定
|
44
|
-
ISINcode = driver.find_element_by_xpath(r"/html/body/div[3]/div/div/div/div/div/div[1]/div[2]/table/tbody/tr/td/font/table[3]/tbody/tr/td/form/table/tbody/tr[1]/td[2]/input")
|
45
|
-
#テキストボックスに入力
|
46
|
-
ISINcode.send_keys("")
|
47
|
-
|
48
|
-
#テキストボックスを指定
|
49
|
-
meigara_name = driver.find_element_by_xpath(r"/html/body/div[3]/div/div/div/div/div/div[1]/div[2]/table/tbody/tr/td/font/table[3]/tbody/tr/td/form/table/tbody/tr[2]/td[2]/input")
|
50
|
-
#銘柄の正式名称に入力
|
51
|
-
meigara_name.send_keys("")
|
52
|
-
|
53
|
-
#検索ボタンを指定
|
54
|
-
search_btn = driver.find_element_by_xpath(r"/html/body/div[3]/div/div/div/div/div/div[1]/div[2]/table/tbody/tr/td/font/table[4]/tbody/tr/td/input[2]")
|
55
|
-
#検索ボタンを押して検索を実行
|
56
|
-
search_btn.click()
|
57
|
-
|
58
|
-
#ページ読み込み待機
|
59
|
-
sleep(10)
|
60
|
-
|
61
|
-
|
62
|
-
#変数名
|
63
|
-
i = 2
|
64
|
-
count = 0 #画面遷移用
|
65
|
-
allcount = 0 #処理回数を数える用
|
66
|
-
|
67
|
-
HEADER = [
|
68
|
-
'銘柄の正式名称', '銘柄略称', 'ISINコード', '発行代理人','支払代理人','発行通貨','社債の総額',
|
69
|
-
'各社債の金額','方式','利付割引区分','利払通貨','利払日','償還通貨','償還日','「各社債の金額」あたりの償還プレミアム',
|
70
|
-
'払込日','利払期日(今回)','利率(今回)','1通貨あたりの利子額(今回)','利払期日(次回)','利率(次回)','1通貨あたりの利子額(次回)'
|
71
|
-
'利払期日(最終回)','利率(最終回)','1通貨あたりの利子額(最終回)','社債管理者等'
|
72
|
-
] #ヘッダー部分
|
73
|
-
|
74
|
-
#出力先
|
75
|
-
with open(r'\\svr-kyo4\全社共有\3_6000_新事業推進部\商品企画室\98.個人作業用フォルダ\saito\Pythonテスト\Scraping\test.csv', 'w', encoding='utf-8',newline='') as file:
|
76
|
-
writer = csv.writer(file)
|
77
|
-
#ヘッダーの出力
|
78
|
-
writer.writerow(HEADER)
|
79
|
-
|
80
|
-
#繰り返し処理(練習で30回繰り返し)
|
81
|
-
for ch in range(30):
|
82
|
-
|
83
|
-
#検索先のhtmlを取得
|
84
|
-
html = driver.page_source
|
85
|
-
#soupオブジェクトを作る
|
86
|
-
soup = BeautifulSoup(html, 'html.parser')
|
87
|
-
|
88
|
-
#一つ一つ選択(今試してる)
|
89
|
-
meisyo = soup.find_all('span',class_='hy')[1].get_text().strip() #銘柄の正式名称
|
90
|
-
ryakusyo = soup.find_all('span',class_='hy')[3].get_text().strip() #銘柄略称
|
91
|
-
ISINcode = soup.find_all('span',class_='hy')[5].get_text().strip() #ISINコード
|
92
|
-
issue_agent = soup.find_all('span',class_='hy')[7].get_text().strip() #発行代理人
|
93
|
-
paying_agent = soup.find_all('span',class_='hy')[9].get_text().strip() #支払代理人
|
94
|
-
issue_currency = soup.find_all('span',class_='hy')[11].get_text().strip() #発行通貨
|
95
|
-
total_amount = soup.find_all('span',class_='hy')[13].get_text().strip() #社債の総額
|
96
|
-
amount_each_bond = soup.find_all('span',class_='hy')[15].get_text().strip() #各社債の金額
|
97
|
-
system = soup.find_all('span',class_='hy')[16].get_text().strip() #方式
|
98
|
-
interest_bearing_division = soup.find_all('span',class_='hy')[18].get_text().strip() #利付割引区分
|
99
|
-
interest_bearing_currency = soup.find_all('span',class_='hy')[20].get_text().strip() #利払通貨
|
100
|
-
pay_date1 = soup.find_all('span',class_='hy')[22].get_text().strip() #利払日 分割されて入力欄があるため要変更
|
101
|
-
pay_date2 = soup.find_all('span',class_='hy')[23].get_text().strip() #利払日 分割されて入力欄があるため要変更
|
102
|
-
pay_date3 = soup.find_all('span',class_='hy')[24].get_text().strip() #利払日 分割されて入力欄があるため要変更
|
103
|
-
pay_date4 = soup.find_all('span',class_='hy')[25].get_text().strip() #利払日 分割されて入力欄があるため要変更
|
104
|
-
pay_date5 = soup.find_all('span',class_='hy')[26].get_text().strip() #利払日 分割されて入力欄があるため要変更
|
105
|
-
pay_date6 = soup.find_all('span',class_='hy')[27].get_text().strip() #利払日 分割されて入力欄があるため要変更
|
106
|
-
redemption_Currency = soup.find_all('span',class_='hy')[35].get_text().strip() #償還通貨
|
107
|
-
redemption_date = soup.find_all('span',class_='hy')[37].get_text().strip() #償還日
|
108
|
-
premium = soup.find_all('span',class_='hy')[38].get_text().strip() #「各社債の金額」あたりの償還プレミアム 値が入ってる状態で要確認
|
109
|
-
date_of_payment = soup.find_all('span',class_='hy')[40].get_text().strip() #払込日
|
110
|
-
interest_payment_date_now = soup.find_all('span',class_='hy')[42].get_text().strip() #利払期日(今回)
|
111
|
-
interest_rate_now = soup.find_all('span',class_='hy')[46].get_text().strip() #利率(今回)
|
112
|
-
interest_per_currency_now = soup.find_all('span',class_='hy')[50].get_text().strip() #1通貨あたりの利子額(今回)
|
113
|
-
interest_payment_date_next = soup.find_all('span',class_='hy')[44].get_text().strip() #利払期日(次回) 値が入ってる状態で要確認
|
114
|
-
interest_rate_next = soup.find_all('span',class_='hy')[48].get_text().strip() #利率(次回) 値が入ってる状態で要確認
|
115
|
-
interest_per_currency_next = soup.find_all('span',class_='hy')[52].get_text().strip() #1通貨あたりの利子額(次回) 値が入ってる状態で要確認
|
116
|
-
final_payment_date = soup.find_all('span',class_='hy')[54].get_text().strip() #最終償還期日
|
117
|
-
interest_rate_last = soup.find_all('span',class_='hy')[56].get_text().strip() #利率(最終回)
|
118
|
-
interest_per_currency_last = soup.find_all('span',class_='hy')[58].get_text().strip() #1通貨あたりの利子額(最終回)
|
119
|
-
social_bond_manager1 = soup.find_all('span',class_='hy')[60].get_text().strip() #社債管理者等
|
120
|
-
social_bond_manager2 = soup.find_all('span',class_='hy')[61].get_text().strip() #社債管理者等
|
121
|
-
social_bond_manager3 = soup.find_all('span',class_='hy')[62].get_text().strip() #社債管理者等
|
122
|
-
social_bond_manager4 = soup.find_all('span',class_='hy')[63].get_text().strip() #社債管理者等 値が入ってる状態で要確認
|
123
|
-
social_bond_manager5 = soup.find_all('span',class_='hy')[64].get_text().strip() #社債管理者等 値が入ってる状態で要確認
|
124
|
-
social_bond_manager6 = soup.find_all('span',class_='hy')[65].get_text().strip() #社債管理者等 値が入ってる状態で要確認
|
125
|
-
social_bond_manager7 = soup.find_all('span',class_='hy')[66].get_text().strip() #社債管理者等 値が入ってる状態で要確認
|
126
|
-
social_bond_manager8 = soup.find_all('span',class_='hy')[67].get_text().strip() #社債管理者等 値が入ってる状態で要確認
|
127
|
-
social_bond_manager9 = soup.find_all('span',class_='hy')[68].get_text().strip() #社債管理者等 値が入ってる状態で要確認
|
128
|
-
social_bond_manager10 = soup.find_all('span',class_='hy')[69].get_text().strip() #社債管理者等 値が入ってる状態で要確認
|
129
|
-
|
130
|
-
|
131
|
-
row = [
|
132
|
-
meisyo,ryakusyo,ISINcode,issue_agent,paying_agent,issue_currency,total_amount,amount_each_bond,
|
133
|
-
system,interest_bearing_division,interest_bearing_currency,redemption_date,premium,date_of_payment,
|
134
|
-
interest_payment_date_now,interest_rate_now,interest_per_currency_now,interest_payment_date_next,
|
135
|
-
interest_rate_next,interest_per_currency_next,final_payment_date,interest_rate_last,interest_per_currency_last,
|
136
|
-
social_bond_manager1,social_bond_manager2,social_bond_manager3,social_bond_manager4,social_bond_manager5,
|
137
|
-
social_bond_manager6,social_bond_manager7,social_bond_manager8,social_bond_manager9,social_bond_manager10
|
138
|
-
]
|
139
|
-
|
140
|
-
writer.writerow(row)
|
141
|
-
|
142
|
-
#ページ読み込み待機
|
143
|
-
sleep(8)
|
144
|
-
|
145
|
-
if count < 19:
|
146
|
-
#この処理で1-20までは処理できる(次へボタンが12なので押せない)
|
147
|
-
#ボタンを指定
|
148
|
-
next_btn = driver.find_element_by_xpath(r"/html/body/div[3]/div/div/div/div/div/div[1]/div[2]/table/tbody/tr/td/font/table[3]/tbody/tr/td/a[" +str(i) +"]")
|
149
|
-
#ボタンを押して次ページに進む
|
150
|
-
next_btn.click()
|
151
|
-
|
152
|
-
if count == 19:
|
153
|
-
#次へボタン(12)専用
|
154
|
-
#ボタンを指定
|
155
|
-
next_btn1 = driver.find_element_by_xpath(r"/html/body/div[3]/div/div/div/div/div/div[1]/div[2]/table/tbody/tr/td/font/table[3]/tbody/tr/td/a[12]")
|
156
|
-
#ボタンを押して次ページに進む
|
157
|
-
next_btn1.click()
|
158
|
-
#countを10にリセットする(これで2回目以降の次へボタンに対応)
|
159
|
-
count = 10
|
160
|
-
|
161
|
-
#ページ読み込み待機
|
162
|
-
sleep(8)
|
163
|
-
|
164
|
-
#処理したら+1
|
165
|
-
i += 1
|
166
|
-
count += 1
|
167
|
-
allcount += 1
|
168
|
-
|
169
|
-
#iが12になったらリセット
|
170
|
-
if i == 12:
|
171
|
-
i = 3
|
172
|
-
|
173
|
-
k = 0
|
174
|
-
#出力用(処理回数の分だけ繰り返す)
|
175
|
-
for out in range(allcount):
|
176
|
-
print (k)
|
177
|
-
k += 1
|
178
|
-
|
179
|
-
|
180
|
-
driver.quit()
|
2
コードを掲載しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,4 @@
|
|
1
|
-
```ここに言語を入力
|
2
|
-
コード
|
3
|
-
|
1
|
+
スクレイピング初心者です。
|
4
2
|
PythonにてWebスクレイピングを練習し、
|
5
3
|
練習として、
|
6
4
|
|
1
コードを載せさせていただきました
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
+
```ここに言語を入力
|
2
|
+
コード
|
1
|
-
スクレイピング初心者です。
|
3
|
+
```スクレイピング初心者です。
|
2
4
|
PythonにてWebスクレイピングを練習し、
|
3
5
|
練習として、
|
4
6
|
|
@@ -10,3 +12,171 @@
|
|
10
12
|
このようなサイトから値をうまく取得する方法を、
|
11
13
|
ご教授いただきたく思います。
|
12
14
|
|
15
|
+
from cgitb import html
|
16
|
+
from selenium import webdriver
|
17
|
+
from selenium.webdriver.chrome import service
|
18
|
+
from selenium.webdriver.chrome.options import Options
|
19
|
+
from time import sleep
|
20
|
+
from bs4 import BeautifulSoup
|
21
|
+
import csv
|
22
|
+
|
23
|
+
#最初のページ
|
24
|
+
url = "http://www.jasdec.com/reading/sbmei.php"
|
25
|
+
|
26
|
+
# ヘッドレスモードの設定。
|
27
|
+
# True => ブラウザを描写しない。
|
28
|
+
# False => ブラウザを描写する。
|
29
|
+
options = Options()
|
30
|
+
options.add_argument('--headless')
|
31
|
+
|
32
|
+
#ChromeDriverのパスを変数に設定
|
33
|
+
ChromeDriver = r"C:\Users\k-saito\Downloads\chromedriver_win32\chromedriver.exe"
|
34
|
+
#ChromeDriverのstartとstopを制御するServiceオブジェクトを介してパスを渡す
|
35
|
+
chrome_service = service.Service(executable_path=ChromeDriver)
|
36
|
+
|
37
|
+
#Chromeを起動
|
38
|
+
driver = webdriver.Chrome(service=chrome_service)
|
39
|
+
|
40
|
+
#保振のサイトに遷移
|
41
|
+
driver.get(url)
|
42
|
+
#カレントウインドウを最大化する
|
43
|
+
driver.maximize_window()
|
44
|
+
|
45
|
+
#テキストボックスを指定
|
46
|
+
ISINcode = driver.find_element_by_xpath(r"/html/body/div[3]/div/div/div/div/div/div[1]/div[2]/table/tbody/tr/td/font/table[3]/tbody/tr/td/form/table/tbody/tr[1]/td[2]/input")
|
47
|
+
#テキストボックスに入力
|
48
|
+
ISINcode.send_keys("")
|
49
|
+
|
50
|
+
#テキストボックスを指定
|
51
|
+
meigara_name = driver.find_element_by_xpath(r"/html/body/div[3]/div/div/div/div/div/div[1]/div[2]/table/tbody/tr/td/font/table[3]/tbody/tr/td/form/table/tbody/tr[2]/td[2]/input")
|
52
|
+
#銘柄の正式名称に入力
|
53
|
+
meigara_name.send_keys("")
|
54
|
+
|
55
|
+
#検索ボタンを指定
|
56
|
+
search_btn = driver.find_element_by_xpath(r"/html/body/div[3]/div/div/div/div/div/div[1]/div[2]/table/tbody/tr/td/font/table[4]/tbody/tr/td/input[2]")
|
57
|
+
#検索ボタンを押して検索を実行
|
58
|
+
search_btn.click()
|
59
|
+
|
60
|
+
#ページ読み込み待機
|
61
|
+
sleep(10)
|
62
|
+
|
63
|
+
|
64
|
+
#変数名
|
65
|
+
i = 2
|
66
|
+
count = 0 #画面遷移用
|
67
|
+
allcount = 0 #処理回数を数える用
|
68
|
+
|
69
|
+
HEADER = [
|
70
|
+
'銘柄の正式名称', '銘柄略称', 'ISINコード', '発行代理人','支払代理人','発行通貨','社債の総額',
|
71
|
+
'各社債の金額','方式','利付割引区分','利払通貨','利払日','償還通貨','償還日','「各社債の金額」あたりの償還プレミアム',
|
72
|
+
'払込日','利払期日(今回)','利率(今回)','1通貨あたりの利子額(今回)','利払期日(次回)','利率(次回)','1通貨あたりの利子額(次回)'
|
73
|
+
'利払期日(最終回)','利率(最終回)','1通貨あたりの利子額(最終回)','社債管理者等'
|
74
|
+
] #ヘッダー部分
|
75
|
+
|
76
|
+
#出力先
|
77
|
+
with open(r'\\svr-kyo4\全社共有\3_6000_新事業推進部\商品企画室\98.個人作業用フォルダ\saito\Pythonテスト\Scraping\test.csv', 'w', encoding='utf-8',newline='') as file:
|
78
|
+
writer = csv.writer(file)
|
79
|
+
#ヘッダーの出力
|
80
|
+
writer.writerow(HEADER)
|
81
|
+
|
82
|
+
#繰り返し処理(練習で30回繰り返し)
|
83
|
+
for ch in range(30):
|
84
|
+
|
85
|
+
#検索先のhtmlを取得
|
86
|
+
html = driver.page_source
|
87
|
+
#soupオブジェクトを作る
|
88
|
+
soup = BeautifulSoup(html, 'html.parser')
|
89
|
+
|
90
|
+
#一つ一つ選択(今試してる)
|
91
|
+
meisyo = soup.find_all('span',class_='hy')[1].get_text().strip() #銘柄の正式名称
|
92
|
+
ryakusyo = soup.find_all('span',class_='hy')[3].get_text().strip() #銘柄略称
|
93
|
+
ISINcode = soup.find_all('span',class_='hy')[5].get_text().strip() #ISINコード
|
94
|
+
issue_agent = soup.find_all('span',class_='hy')[7].get_text().strip() #発行代理人
|
95
|
+
paying_agent = soup.find_all('span',class_='hy')[9].get_text().strip() #支払代理人
|
96
|
+
issue_currency = soup.find_all('span',class_='hy')[11].get_text().strip() #発行通貨
|
97
|
+
total_amount = soup.find_all('span',class_='hy')[13].get_text().strip() #社債の総額
|
98
|
+
amount_each_bond = soup.find_all('span',class_='hy')[15].get_text().strip() #各社債の金額
|
99
|
+
system = soup.find_all('span',class_='hy')[16].get_text().strip() #方式
|
100
|
+
interest_bearing_division = soup.find_all('span',class_='hy')[18].get_text().strip() #利付割引区分
|
101
|
+
interest_bearing_currency = soup.find_all('span',class_='hy')[20].get_text().strip() #利払通貨
|
102
|
+
pay_date1 = soup.find_all('span',class_='hy')[22].get_text().strip() #利払日 分割されて入力欄があるため要変更
|
103
|
+
pay_date2 = soup.find_all('span',class_='hy')[23].get_text().strip() #利払日 分割されて入力欄があるため要変更
|
104
|
+
pay_date3 = soup.find_all('span',class_='hy')[24].get_text().strip() #利払日 分割されて入力欄があるため要変更
|
105
|
+
pay_date4 = soup.find_all('span',class_='hy')[25].get_text().strip() #利払日 分割されて入力欄があるため要変更
|
106
|
+
pay_date5 = soup.find_all('span',class_='hy')[26].get_text().strip() #利払日 分割されて入力欄があるため要変更
|
107
|
+
pay_date6 = soup.find_all('span',class_='hy')[27].get_text().strip() #利払日 分割されて入力欄があるため要変更
|
108
|
+
redemption_Currency = soup.find_all('span',class_='hy')[35].get_text().strip() #償還通貨
|
109
|
+
redemption_date = soup.find_all('span',class_='hy')[37].get_text().strip() #償還日
|
110
|
+
premium = soup.find_all('span',class_='hy')[38].get_text().strip() #「各社債の金額」あたりの償還プレミアム 値が入ってる状態で要確認
|
111
|
+
date_of_payment = soup.find_all('span',class_='hy')[40].get_text().strip() #払込日
|
112
|
+
interest_payment_date_now = soup.find_all('span',class_='hy')[42].get_text().strip() #利払期日(今回)
|
113
|
+
interest_rate_now = soup.find_all('span',class_='hy')[46].get_text().strip() #利率(今回)
|
114
|
+
interest_per_currency_now = soup.find_all('span',class_='hy')[50].get_text().strip() #1通貨あたりの利子額(今回)
|
115
|
+
interest_payment_date_next = soup.find_all('span',class_='hy')[44].get_text().strip() #利払期日(次回) 値が入ってる状態で要確認
|
116
|
+
interest_rate_next = soup.find_all('span',class_='hy')[48].get_text().strip() #利率(次回) 値が入ってる状態で要確認
|
117
|
+
interest_per_currency_next = soup.find_all('span',class_='hy')[52].get_text().strip() #1通貨あたりの利子額(次回) 値が入ってる状態で要確認
|
118
|
+
final_payment_date = soup.find_all('span',class_='hy')[54].get_text().strip() #最終償還期日
|
119
|
+
interest_rate_last = soup.find_all('span',class_='hy')[56].get_text().strip() #利率(最終回)
|
120
|
+
interest_per_currency_last = soup.find_all('span',class_='hy')[58].get_text().strip() #1通貨あたりの利子額(最終回)
|
121
|
+
social_bond_manager1 = soup.find_all('span',class_='hy')[60].get_text().strip() #社債管理者等
|
122
|
+
social_bond_manager2 = soup.find_all('span',class_='hy')[61].get_text().strip() #社債管理者等
|
123
|
+
social_bond_manager3 = soup.find_all('span',class_='hy')[62].get_text().strip() #社債管理者等
|
124
|
+
social_bond_manager4 = soup.find_all('span',class_='hy')[63].get_text().strip() #社債管理者等 値が入ってる状態で要確認
|
125
|
+
social_bond_manager5 = soup.find_all('span',class_='hy')[64].get_text().strip() #社債管理者等 値が入ってる状態で要確認
|
126
|
+
social_bond_manager6 = soup.find_all('span',class_='hy')[65].get_text().strip() #社債管理者等 値が入ってる状態で要確認
|
127
|
+
social_bond_manager7 = soup.find_all('span',class_='hy')[66].get_text().strip() #社債管理者等 値が入ってる状態で要確認
|
128
|
+
social_bond_manager8 = soup.find_all('span',class_='hy')[67].get_text().strip() #社債管理者等 値が入ってる状態で要確認
|
129
|
+
social_bond_manager9 = soup.find_all('span',class_='hy')[68].get_text().strip() #社債管理者等 値が入ってる状態で要確認
|
130
|
+
social_bond_manager10 = soup.find_all('span',class_='hy')[69].get_text().strip() #社債管理者等 値が入ってる状態で要確認
|
131
|
+
|
132
|
+
|
133
|
+
row = [
|
134
|
+
meisyo,ryakusyo,ISINcode,issue_agent,paying_agent,issue_currency,total_amount,amount_each_bond,
|
135
|
+
system,interest_bearing_division,interest_bearing_currency,redemption_date,premium,date_of_payment,
|
136
|
+
interest_payment_date_now,interest_rate_now,interest_per_currency_now,interest_payment_date_next,
|
137
|
+
interest_rate_next,interest_per_currency_next,final_payment_date,interest_rate_last,interest_per_currency_last,
|
138
|
+
social_bond_manager1,social_bond_manager2,social_bond_manager3,social_bond_manager4,social_bond_manager5,
|
139
|
+
social_bond_manager6,social_bond_manager7,social_bond_manager8,social_bond_manager9,social_bond_manager10
|
140
|
+
]
|
141
|
+
|
142
|
+
writer.writerow(row)
|
143
|
+
|
144
|
+
#ページ読み込み待機
|
145
|
+
sleep(8)
|
146
|
+
|
147
|
+
if count < 19:
|
148
|
+
#この処理で1-20までは処理できる(次へボタンが12なので押せない)
|
149
|
+
#ボタンを指定
|
150
|
+
next_btn = driver.find_element_by_xpath(r"/html/body/div[3]/div/div/div/div/div/div[1]/div[2]/table/tbody/tr/td/font/table[3]/tbody/tr/td/a[" +str(i) +"]")
|
151
|
+
#ボタンを押して次ページに進む
|
152
|
+
next_btn.click()
|
153
|
+
|
154
|
+
if count == 19:
|
155
|
+
#次へボタン(12)専用
|
156
|
+
#ボタンを指定
|
157
|
+
next_btn1 = driver.find_element_by_xpath(r"/html/body/div[3]/div/div/div/div/div/div[1]/div[2]/table/tbody/tr/td/font/table[3]/tbody/tr/td/a[12]")
|
158
|
+
#ボタンを押して次ページに進む
|
159
|
+
next_btn1.click()
|
160
|
+
#countを10にリセットする(これで2回目以降の次へボタンに対応)
|
161
|
+
count = 10
|
162
|
+
|
163
|
+
#ページ読み込み待機
|
164
|
+
sleep(8)
|
165
|
+
|
166
|
+
#処理したら+1
|
167
|
+
i += 1
|
168
|
+
count += 1
|
169
|
+
allcount += 1
|
170
|
+
|
171
|
+
#iが12になったらリセット
|
172
|
+
if i == 12:
|
173
|
+
i = 3
|
174
|
+
|
175
|
+
k = 0
|
176
|
+
#出力用(処理回数の分だけ繰り返す)
|
177
|
+
for out in range(allcount):
|
178
|
+
print (k)
|
179
|
+
k += 1
|
180
|
+
|
181
|
+
|
182
|
+
driver.quit()
|