質問編集履歴
4
codeを正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -36,27 +36,11 @@
|
|
36
36
|
|
37
37
|
|
38
38
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
'''
|
44
|
-
|
45
|
-
html = requests.get(url).text
|
46
|
-
|
47
|
-
soup = BeautifulSoup(html,"html.parser") #AttributeError: 'Response' object has no attribute 'contents'
|
48
|
-
|
49
|
-
'''
|
50
|
-
|
51
|
-
#どちらの書き方でも可能らしい
|
52
|
-
|
53
39
|
html = requests.get(url)
|
54
40
|
|
55
41
|
soup = BeautifulSoup(html.content,"html.parser") #AttributeError: 'Response' object has no attribute 'contents'
|
56
42
|
|
57
43
|
|
58
|
-
|
59
|
-
#print(soup("script"))
|
60
44
|
|
61
45
|
for script in soup(["script", "style"]):#スクリプトやスタイルを含む要素を取り除く
|
62
46
|
|
@@ -70,11 +54,7 @@
|
|
70
54
|
|
71
55
|
lines= [line.strip() for line in text.splitlines()]
|
72
56
|
|
73
|
-
|
74
|
-
|
75
57
|
text="\n".join(line for line in lines if line)
|
76
|
-
|
77
|
-
|
78
58
|
|
79
59
|
print(text)#空白、タグなし
|
80
60
|
|
3
改定後の全文をのせました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -70,25 +70,11 @@
|
|
70
70
|
|
71
71
|
lines= [line.strip() for line in text.splitlines()]
|
72
72
|
|
73
|
-
'''
|
74
73
|
|
75
|
-
<=
|
76
|
-
|
77
|
-
.strip()では引数に指定したものを文字列の文頭文末から削除することができます。 今回のように引数に何も指定しなければ空白(改行等中身のないもの)を全削除
|
78
|
-
|
79
|
-
.splitlines()は改行ごとに要素をリストに入れます。
|
80
|
-
|
81
|
-
'''
|
82
74
|
|
83
75
|
text="\n".join(line for line in lines if line)
|
84
76
|
|
85
|
-
'''
|
86
77
|
|
87
|
-
<=.joinはリストを文字列に変換します。
|
88
|
-
|
89
|
-
ここで、それぞれのリストの中身ごとに改行して文字列に戻していきます。このとき注意点は、「''」のような中身が何もないlineは無視することです。そのためにif lineが必要です。
|
90
|
-
|
91
|
-
'''
|
92
78
|
|
93
79
|
print(text)#空白、タグなし
|
94
80
|
|
2
改定後の全文をのせました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -19,3 +19,83 @@
|
|
19
19
|
このようにURL内の数字を変えながらスクレイピングしていきたいです。可能なのでしょうか。
|
20
20
|
|
21
21
|
1つのwebサイトからurlを取得してきてスクレイピングする作業ができ、ループで同じように複数のurlから取得したいです。urlは末だけ異なるものです。ヒントをください。
|
22
|
+
|
23
|
+
```ここに言語を入力
|
24
|
+
|
25
|
+
import requests
|
26
|
+
|
27
|
+
from bs4 import BeautifulSoup
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
# Webページを取得して解析する
|
32
|
+
|
33
|
+
for i in range(3):
|
34
|
+
|
35
|
+
url = "https://portal.kyoto-wu.ac.jp/Syllabus/syllabusView?syllabusYear=2020&syllabusNo=K1-{153 + i}&kougicd=' + f'{4553 + i}'"
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
'''
|
44
|
+
|
45
|
+
html = requests.get(url).text
|
46
|
+
|
47
|
+
soup = BeautifulSoup(html,"html.parser") #AttributeError: 'Response' object has no attribute 'contents'
|
48
|
+
|
49
|
+
'''
|
50
|
+
|
51
|
+
#どちらの書き方でも可能らしい
|
52
|
+
|
53
|
+
html = requests.get(url)
|
54
|
+
|
55
|
+
soup = BeautifulSoup(html.content,"html.parser") #AttributeError: 'Response' object has no attribute 'contents'
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
#print(soup("script"))
|
60
|
+
|
61
|
+
for script in soup(["script", "style"]):#スクリプトやスタイルを含む要素を取り除く
|
62
|
+
|
63
|
+
script.decompose() #.decompose()は、削除のメソッド
|
64
|
+
|
65
|
+
#print(soup)
|
66
|
+
|
67
|
+
text=soup.get_text()#テキストのみ=タグ取り
|
68
|
+
|
69
|
+
#print(text) #タグなし、空白あり
|
70
|
+
|
71
|
+
lines= [line.strip() for line in text.splitlines()]
|
72
|
+
|
73
|
+
'''
|
74
|
+
|
75
|
+
<=
|
76
|
+
|
77
|
+
.strip()では引数に指定したものを文字列の文頭文末から削除することができます。 今回のように引数に何も指定しなければ空白(改行等中身のないもの)を全削除
|
78
|
+
|
79
|
+
.splitlines()は改行ごとに要素をリストに入れます。
|
80
|
+
|
81
|
+
'''
|
82
|
+
|
83
|
+
text="\n".join(line for line in lines if line)
|
84
|
+
|
85
|
+
'''
|
86
|
+
|
87
|
+
<=.joinはリストを文字列に変換します。
|
88
|
+
|
89
|
+
ここで、それぞれのリストの中身ごとに改行して文字列に戻していきます。このとき注意点は、「''」のような中身が何もないlineは無視することです。そのためにif lineが必要です。
|
90
|
+
|
91
|
+
'''
|
92
|
+
|
93
|
+
print(text)#空白、タグなし
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
```
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
思うような結果がでませんでした。どうなっているのでしょうか。
|
1
わかりやすく書きました
test
CHANGED
File without changes
|
test
CHANGED
@@ -1 +1,21 @@
|
|
1
|
+
```ここに言語を入力
|
2
|
+
|
3
|
+
https://syllabusView?syllabusYear=2020&syllabusNo=K1-152&kougicd=0004552&request_locale=ja
|
4
|
+
|
5
|
+
```
|
6
|
+
|
7
|
+
K1-153&kougicd=0004553
|
8
|
+
|
9
|
+
K1-154&kougicd=0004554
|
10
|
+
|
11
|
+
K1-155&kougicd=0004555
|
12
|
+
|
13
|
+
.....
|
14
|
+
|
15
|
+
K1-164&kougicd=0004564
|
16
|
+
|
17
|
+
.....
|
18
|
+
|
19
|
+
このようにURL内の数字を変えながらスクレイピングしていきたいです。可能なのでしょうか。
|
20
|
+
|
1
21
|
1つのwebサイトからurlを取得してきてスクレイピングする作業ができ、ループで同じように複数のurlから取得したいです。urlは末だけ異なるものです。ヒントをください。
|