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

質問編集履歴

3

タイトルの修正

2018/08/18 14:01

投稿

x066
x066

スコア23

title CHANGED
@@ -1,1 +1,1 @@
1
- 指定した単語が存在するWebページからスクレイピング
1
+ 指定した単語が存在するWebページからスクレイピング(python)
body CHANGED
File without changes

2

問題点の追記

2018/08/18 14:01

投稿

x066
x066

スコア23

title CHANGED
File without changes
body CHANGED
@@ -16,30 +16,27 @@
16
16
 
17
17
  #【進捗】
18
18
  現在は指定したサイトのクラスからURLを抽出しようとしています。
19
+ ※以前の【AttributeError: 'NoneType' object has no attribute 'get'】が出て来るエラーは直りました。ありがとうございます。(8/18追記)
19
20
  ###ソースコード
20
21
  ```python
21
22
  # coding: UTF-8
22
-
23
23
  import requests
24
24
  from bs4 import BeautifulSoup
25
25
 
26
26
  response = requests.get('URL')
27
27
  #HTMLを取得して変数へ格納
28
28
 
29
- soup = BeautifulSoup(responsew.text,'lxml')
29
+ soup = BeautifulSoup(response.text,'lxml')
30
- #lxmlというツールでresponse.textを変換、変数へ格納
30
+ #lxmlというツールでresponse.textを変換、スクレイピングできる形にして変数へ格納
31
31
 
32
- data = soup.find('a',class_='クラス名').get('href')
32
+ Cdata = soup.find_all("div", class_="クラス名")
33
33
 
34
+ for x in Cdata:
35
+ Udata = x.get("href")
34
- print(data)
36
+ print (Udata)
35
37
  ```
36
38
  ###エラー
37
- 次のようなエラーガ出てしまいます。
38
- クラスを指定せずにサイト全体のURLを抽出するパターンはうまくいきました
39
+ 「None」と表示され、URLの取得ができません
39
- ```実行結果
40
- AttributeError: 'NoneType' object has no attribute 'get'
40
+ 指定したクラス内に実際に存在するはずなのですが・・・
41
- ```
42
41
 
43
-
44
-
45
42
  以上、よろしくお願い致します。

1

※8/18追記 すみません、記載情報があまりに少なすぎました

2018/08/18 11:43

投稿

x066
x066

スコア23

title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,8 @@
1
+ #【実行環境および使用言語】
2
+ -CentOS 7
3
+ -Python 2.7.5
4
+
5
+ #【やりたいこと】
1
6
  次のような操作を行いたいと考えております。
2
7
 
3
8
  ①とあるWebページからURL一覧を取得する(スクレイピング?)
@@ -9,6 +14,32 @@
9
14
  →取得したURL先の全てのページから『スイカ』という単語が含まれたものがあるか調べる
10
15
  →『スイカ』という単語がある全てのページから『タイトル』や『画像』といったデータを取得する
11
16
 
17
+ #【進捗】
12
- 自身で調べところスクレピングはpythonで来るようなのですが、上記の手順は分かりせん
18
+ 現在は指定しトのクラスからURLを抽ようとしてい
19
+ ###ソースコード
20
+ ```python
21
+ # coding: UTF-8
13
22
 
23
+ import requests
24
+ from bs4 import BeautifulSoup
25
+
26
+ response = requests.get('URL')
27
+ #HTMLを取得して変数へ格納
28
+
29
+ soup = BeautifulSoup(responsew.text,'lxml')
30
+ #lxmlというツールでresponse.textを変換、変数へ格納
31
+
32
+ data = soup.find('a',class_='クラス名').get('href')
33
+
34
+ print(data)
35
+ ```
36
+ ###エラー
37
+ 次のようなエラーガ出てしまいます。
38
+ クラスを指定せずにサイト全体のURLを抽出するパターンはうまくいきました。
39
+ ```実行結果
40
+ AttributeError: 'NoneType' object has no attribute 'get'
41
+ ```
42
+
43
+
44
+
14
45
  以上、よろしくお願い致します。