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

質問編集履歴

3

説明追加

2021/07/22 02:20

投稿

dub
dub

スコア24

title CHANGED
File without changes
body CHANGED
@@ -3,6 +3,7 @@
3
3
 
4
4
  唯一  styleでwidth 40 width60 とで 見出しと値が対になって判別できる為
5
5
  これを見出しと値を 対にして 辞書型にすれば解決できるのではと思いました。
6
+
6
7
  ```html
7
8
  <ul>
8
9
 
@@ -58,4 +59,7 @@
58
59
  File "<ipython-input-51-b737eb51cd68>", line 3
59
60
  if tag.name == ('li',style.value'width: 40%;'):
60
61
  ^
61
- SyntaxError: invalid syntax
62
+ SyntaxError: invalid syntax
63
+
64
+ ##この方法に拘っていませんが・・
65
+ ※参照元ページは各ページで <li>の数が異なるのでsoul.select でCSSセレクターで取得すると、各ページで変数に入る値が異なるので、見出しをキーにして値を取り出したいです

2

verを追加

2021/07/22 02:20

投稿

dub
dub

スコア24

title CHANGED
@@ -1,1 +1,1 @@
1
- python BS4 find_all で<li>をスタイル(width)で判別、見出しと値の辞書を作成するには
1
+ python3 BS4 find_all で<li>をスタイル(width)で判別、見出しと値の辞書を作成するには
body CHANGED
@@ -1,8 +1,8 @@
1
- Python beautiful soup4 で スクレイピングしているのですが
1
+ Python3 beautiful soup4 で スクレイピングしているのですが
2
2
  IDが元ソースに付与されておらず、取得したい部分が<li> </li>ばかりで、またページにより 項目数<li>の数が変わるので、決まった値を取得するのに難航しています。
3
3
 
4
4
  唯一  styleでwidth 40 width60 とで 見出しと値が対になって判別できる為
5
- これを見出しと値を 対にして 辞書にしたいです
5
+ これを見出しと値を 対にして 辞書すれば解決できるのではと思いました
6
6
  ```html
7
7
  <ul>
8
8
 

1

説明を詳しくしました

2021/07/22 01:28

投稿

dub
dub

スコア24

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,7 @@
1
1
  Python beautiful soup4 で スクレイピングしているのですが
2
2
  IDが元ソースに付与されておらず、取得したい部分が<li> </li>ばかりで、またページにより 項目数<li>の数が変わるので、決まった値を取得するのに難航しています。
3
3
 
4
- 唯一  styleでwidth 40 width60 とで 見出しと値が対になって判別できます
4
+ 唯一  styleでwidth 40 width60 とで 見出しと値が対になって判別できる為
5
5
  これを見出しと値を 対にして 辞書にしたいです
6
6
  ```html
7
7
  <ul>
@@ -20,8 +20,8 @@
20
20
  </ul>
21
21
  ```
22
22
 
23
+ <li><li>タグではなくテーブルタグ <th></th> <tr></tr>で見出しと値が対になっている場合は 下記方法でできるので、これを応用して<li>のスタイル width 40 width 60% で判別してできないかと考えたのですが・・
23
- これを テーブルタグの場合は 下記方法きるのですが・・
24
+ ```HTML thとtdが見出しと値で対になっている場合はできる
24
- ```HTML
25
25
  dict={}
26
26
  for tag in soup.find_all(['th', 'td']):
27
27
  if tag.name == 'th':