質問編集履歴
7
サンプルコードの改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -24,7 +24,7 @@
|
|
24
24
|
<td>A2</td>
|
25
25
|
<td>B2</td>
|
26
26
|
<td>
|
27
|
-
<img src="../../media/
|
27
|
+
<img src="../../media/test3.gif">
|
28
28
|
</td>
|
29
29
|
</tr>
|
30
30
|
</tbody>
|
6
タグ追加
title
CHANGED
File without changes
|
body
CHANGED
File without changes
|
5
誤字訂正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
Python, Scrapyでtd内の複数要素を抽出したい
|
body
CHANGED
File without changes
|
4
コード修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
1Python, Scrapyでtd内の複数要素を抽出したい
|
body
CHANGED
@@ -36,7 +36,7 @@
|
|
36
36
|
|
37
37
|
for table_row in table_rows:
|
38
38
|
item = TutorialItem()
|
39
|
-
item['time'] = table_row.xpath('td[
|
39
|
+
item['time'] = table_row.xpath('td[1]/text()').extract_first()
|
40
|
-
item['note'] = table_row.xpath('td[
|
40
|
+
item['note'] = table_row.xpath('td[3]/img/@src').extract_first()
|
41
41
|
yield item
|
42
42
|
```
|
3
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,12 +1,14 @@
|
|
1
1
|
###■経緯
|
2
2
|
とあるtableから、3列目のimg数が不規則なtdからsrc属性の値を抽出して、そのテーブル構造(行,列)を保ちながらcsvファイルとして出力を試みています。
|
3
3
|
|
4
|
-
その際、複数のimgがtd内にある場合、下のScrapyコードでは、HTML上「◯」のimg srcは抽出できるのですが、「★」の値が抽出できません。
|
4
|
+
その際、複数のimgがtd内にある場合、下のScrapyコードでは、**HTML上「◯」のimg srcは抽出できるのですが、「★」の値が抽出できません。**
|
5
5
|
|
6
6
|
###■質問
|
7
7
|
HTML上の「◯」「★」両方の値を、テーブル構造(行,列)を保ちながらcsvとして出力できるScrapyコード(XPathの指定方法)を教えていただけますでしょうか。
|
8
8
|
|
9
|
+
なんとなくですが、extract_first()の部分をうまく修正すれば2つ目のimg srcの値「★」も抽出できるのではないかと想像しています。
|
9
10
|
|
11
|
+
|
10
12
|
```HTML
|
11
13
|
<table>
|
12
14
|
<tbody>
|
2
コード修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -35,6 +35,6 @@
|
|
35
35
|
for table_row in table_rows:
|
36
36
|
item = TutorialItem()
|
37
37
|
item['time'] = table_row.xpath('td[0]/text()').extract_first()
|
38
|
-
item['note'] = table_row.xpath('td[
|
38
|
+
item['note'] = table_row.xpath('td[2]/img/@src').extract_first()
|
39
39
|
yield item
|
40
40
|
```
|
1
コードを簡略化
title
CHANGED
File without changes
|
body
CHANGED
@@ -11,9 +11,12 @@
|
|
11
11
|
<table>
|
12
12
|
<tbody>
|
13
13
|
<tr>
|
14
|
-
<td>
|
14
|
+
<td>A3</td>
|
15
|
-
<td>
|
15
|
+
<td>B3</td>
|
16
|
+
<td>
|
17
|
+
<img src="../../media/test1.gif"> <!-- ◯ -->
|
18
|
+
<img src="../../media/test2.gif"> <!-- ★ -->
|
16
|
-
<
|
19
|
+
</td>
|
17
20
|
</tr>
|
18
21
|
<tr>
|
19
22
|
<td>A2</td>
|
@@ -21,15 +24,7 @@
|
|
21
24
|
<td>
|
22
25
|
<img src="../../media/test1.gif">
|
23
26
|
</td>
|
24
|
-
<tr>
|
25
|
-
<td>A3</td>
|
26
|
-
<td>B3</td>
|
27
|
-
<td>
|
28
|
-
<img src="../../media/test1.gif"> <!-- ◯ -->
|
29
|
-
<img src="../../media/test2.gif"> <!-- ★ -->
|
30
|
-
</td>
|
31
|
-
</tr>
|
27
|
+
</tr>
|
32
|
-
</tr>
|
33
28
|
</tbody>
|
34
29
|
</table>
|
35
30
|
```
|