回答編集履歴

2

追記

2018/06/05 05:42

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -1,6 +1,6 @@
1
1
  0. スクレイピング側のコードを関数化して、`list`を返す形に変更。
2
2
 
3
- 0. PyQt側はボタンをクリック時イベントで、上記関数を呼び出すように。
3
+ 0. PyQt側はボタンをクリック時イベントで、上記関数を呼び出すように。
4
4
 
5
5
  0. tableTest01#setdataは`list`を引数に取るようにすればよいのでは。
6
6
 
@@ -93,3 +93,9 @@
93
93
 
94
94
 
95
95
  ```
96
+
97
+
98
+
99
+ ◇参考情報
100
+
101
+ [【PythonでGUI】PyQt5 -イベント-【ボタンクリック時のイベント発生】](https://qiita.com/Nobu12/items/de180641b7492c6460e9#%E3%83%9C%E3%82%BF%E3%83%B3%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E6%99%82%E3%81%AE%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E7%99%BA%E7%94%9F)

1

追記

2018/06/05 05:42

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -1,5 +1,95 @@
1
- スクレイピング側のコードを関数化して、`list`を返す形にして
1
+ 0. スクレイピング側のコードを関数化して、`list`を返す形に変更
2
2
 
3
- PyQt側はボタンをクリック時のイベントで、上記関数を呼び出して
3
+ 0. PyQt側はボタンをクリック時のイベントで、上記関数を呼び出すように
4
4
 
5
+ 0. tableTest01#setdataは`list`を引数に取るようにすればよいのでは。
6
+
7
+
8
+
9
+ スクレイピング側で`list`を返すサンプルコードです。
10
+
11
+ ```Python
12
+
13
+ # -*- coding: utf-8 -*-
14
+
15
+ from bs4 import BeautifulSoup
16
+
17
+ import urllib.request as req
18
+
19
+ import csv
20
+
21
+
22
+
23
+ def get_content() ->list:
24
+
25
+ with open('url.txt') as f:
26
+
27
+ lines2 = f.readlines()
28
+
29
+
30
+
31
+ pa = []
32
+
33
+ # 取得
34
+
35
+ for line in lines2:
36
+
37
+ url = "xxxxxxxxxxxxxx" + line
38
+
39
+ res = req.urlopen(url)
40
+
41
+ soup = BeautifulSoup(res, 'html.parser')
42
+
43
+
44
+
45
+ title1 = soup.select('#item_title')
46
+
47
+
48
+
49
+ for i in title1:
50
+
51
+ pt = i.get_text().replace('\n', '').replace('\r', '')
52
+
53
+
54
+
55
+ p_list = soup.select('#price')
56
+
57
+
58
+
59
+ for i in p_list:
60
+
61
+ pl = i.get_text().replace('\n', '').replace('\r', '')
62
+
63
+
64
+
65
+ pa += [pt, pl]
66
+
5
- setdata
67
+ return pa
68
+
69
+
70
+
71
+
72
+
73
+ def main() -> None:
74
+
75
+ pa = get_content()
76
+
77
+ # CSV 書き出し
78
+
79
+ with open('price.csv', 'w', encoding='utf-8') as _file:
80
+
81
+ writer = csv.writer(_file, lineterminator='\n')
82
+
83
+ writer.writerow(pa)
84
+
85
+
86
+
87
+
88
+
89
+ if __name__ == '__main__':
90
+
91
+ main()
92
+
93
+
94
+
95
+ ```