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

回答編集履歴

6

d

2020/02/09 09:39

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -33,6 +33,8 @@
33
33
  ## 追記
34
34
 
35
35
  ```python
36
+ from pprint import pprint
37
+
36
38
  import requests
37
39
  from bs4 import BeautifulSoup
38
40
 
@@ -41,8 +43,15 @@
41
43
  res = requests.get(url)
42
44
  soup = BeautifulSoup(res.content)
43
45
 
46
+ data = []
44
- p_tags = soup.select("#kwdArticleBox p")
47
+ for tag in soup.select("#kwdArticleBox p"):
48
+ a_tag = tag.select_one("a:has(> strong)")
45
49
 
50
+ if not a_tag.text:
51
+ # PR 記事の場合、構造が違うので場合分け
46
- for i, tag in enumerate(p_tags):
52
+ a_tag = tag.select("a")[2]
53
+
54
+ data.append({"title": a_tag.text, "url": a_tag["href"]})
55
+
47
- print(tag)
56
+ pprint(data)
48
57
  ```

5

d

2020/02/09 09:39

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -41,8 +41,8 @@
41
41
  res = requests.get(url)
42
42
  soup = BeautifulSoup(res.content)
43
43
 
44
- p_tags = soup.select("#kwdArticleBox p.newsart")
44
+ p_tags = soup.select("#kwdArticleBox p")
45
45
 
46
46
  for i, tag in enumerate(p_tags):
47
- print(i, tag.get_text(strip=True))
47
+ print(tag)
48
48
  ```

4

d

2020/02/09 09:15

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -40,41 +40,9 @@
40
40
 
41
41
  res = requests.get(url)
42
42
  soup = BeautifulSoup(res.content)
43
- titles = [tag.get_text(strip=True) for tag in soup.select("#kwdArticleBox p.newsart strong")]
44
43
 
45
- for i, title in enumerate(titles):
44
+ p_tags = soup.select("#kwdArticleBox p.newsart")
46
- print(i, title)
47
- ```
48
45
 
49
- ```
50
- 0 キヤノンMJ、セキュリティソフト「ESETセキュリティ」最新版の提供を開始
51
- 1 イオンモバイル、60歳以上限定で月額980円の新プラン発表 「業界最安級」うたうキャンペーンも
52
- 2 日本HPの2020事業戦略:
53
- 3 Windows MR「HP Reverb」とワークステーション×5Gで、建築/土木のデジタルツイン構想
54
- 4 新ソリューション「Cisco Duo Security」を日本で提供へ:
46
+ for i, tag in enumerate(p_tags):
55
- 5 「ネットワークをつなぐだけ」の時代は終わった シスコが約2億ドルの企業買収で挑む“ゼロトラストセキュリティ”とは
56
- 6 「Duo Security」を2020年3月に発売:
57
- 7 シスコがユーザーアクセスを含めたゼロトラストセキュリティを国内展開
47
+ print(i, tag.get_text(strip=True))
58
- 8 Rust言語で記述:
59
- 9 Google、FIDOセキュリティキーのオープンソース実装「OpenSK」を発表
60
- 10 クラウド内のデータを守るには:
61
- 11 Microsoft、クラウドのプライバシーとセキュリティで「10の推奨事項を発表」
62
- 12 金融機関の1割はサイバー攻撃で大打撃 セキュリティ人材不足も浮き彫りに
63
- 13 IPAが「情報セキュリティ10大脅威 2020」を発表、「スマホ決済の不正利用」が初登場で1位
64
- 14 新型コロナウイルス流行懸念でテレワーク対応が急務、押さえておきたいセキュリティ対策とは
65
- 15 「スマホ決済の不正利用」が初登場で1位:
66
- 16 IPAが「情報セキュリティ10大脅威 2020」を発表
67
- 17 新型肺炎の広がりと、三菱電機漏えい事件の“共通点” 標的型攻撃への備えを考える
68
- 18 製造ITニュース:
69
- 19 コネクテッドカーのセキュリティ分野で富士通がUpstream Securityと協業
70
- 20 暗号通貨とランサムウェア:
71
- 21 Trend Microがスマート工場に見せかけたハニーポットを設置、どのような脅威があったのか
72
- 22 組織における脅威1位は2019年と変わらず、2020年の「情報セキュリティ10大脅威」とは
73
- 23 2019年最大の脅威は「スマホ決済の不正利用」 IPAが発表
74
- 24 総務省、日本が早急に取り組むべきサイバーセキュリティ対策を発表 近年のインシデントを踏まえ
75
- 25 この頃、セキュリティ界隈で:
76
- 26 進化を続けるマルウェア、ファイルレス攻撃とは何か
77
- 27 “5G前夜”、IoT機器への攻撃に備えよ 対策の鍵は「自動化」と「ゼロトラスト」
78
- 28 開発者に優しいセキュリティを目指す:
79
- 29 クラウドはセキュリティ上「最も弱い鎖」? Check Pointが指摘
80
48
  ```

3

d

2020/02/09 09:09

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -28,4 +28,53 @@
28
28
 
29
29
  ```
30
30
  [<p>hoge1</p>, <p>hoge2</p>, <p>hoge3</p>, <p>hoge4</p>, <p>hoge5</p>]
31
+ ```
32
+
33
+ ## 追記
34
+
35
+ ```python
36
+ import requests
37
+ from bs4 import BeautifulSoup
38
+
39
+ url = "https://www.itmedia.co.jp/keywords/security.html"
40
+
41
+ res = requests.get(url)
42
+ soup = BeautifulSoup(res.content)
43
+ titles = [tag.get_text(strip=True) for tag in soup.select("#kwdArticleBox p.newsart strong")]
44
+
45
+ for i, title in enumerate(titles):
46
+ print(i, title)
47
+ ```
48
+
49
+ ```
50
+ 0 キヤノンMJ、セキュリティソフト「ESETセキュリティ」最新版の提供を開始
51
+ 1 イオンモバイル、60歳以上限定で月額980円の新プラン発表 「業界最安級」うたうキャンペーンも
52
+ 2 日本HPの2020事業戦略:
53
+ 3 Windows MR「HP Reverb」とワークステーション×5Gで、建築/土木のデジタルツイン構想
54
+ 4 新ソリューション「Cisco Duo Security」を日本で提供へ:
55
+ 5 「ネットワークをつなぐだけ」の時代は終わった シスコが約2億ドルの企業買収で挑む“ゼロトラストセキュリティ”とは
56
+ 6 「Duo Security」を2020年3月に発売:
57
+ 7 シスコがユーザーアクセスを含めたゼロトラストセキュリティを国内展開
58
+ 8 Rust言語で記述:
59
+ 9 Google、FIDOセキュリティキーのオープンソース実装「OpenSK」を発表
60
+ 10 クラウド内のデータを守るには:
61
+ 11 Microsoft、クラウドのプライバシーとセキュリティで「10の推奨事項を発表」
62
+ 12 金融機関の1割はサイバー攻撃で大打撃 セキュリティ人材不足も浮き彫りに
63
+ 13 IPAが「情報セキュリティ10大脅威 2020」を発表、「スマホ決済の不正利用」が初登場で1位
64
+ 14 新型コロナウイルス流行懸念でテレワーク対応が急務、押さえておきたいセキュリティ対策とは
65
+ 15 「スマホ決済の不正利用」が初登場で1位:
66
+ 16 IPAが「情報セキュリティ10大脅威 2020」を発表
67
+ 17 新型肺炎の広がりと、三菱電機漏えい事件の“共通点” 標的型攻撃への備えを考える
68
+ 18 製造ITニュース:
69
+ 19 コネクテッドカーのセキュリティ分野で富士通がUpstream Securityと協業
70
+ 20 暗号通貨とランサムウェア:
71
+ 21 Trend Microがスマート工場に見せかけたハニーポットを設置、どのような脅威があったのか
72
+ 22 組織における脅威1位は2019年と変わらず、2020年の「情報セキュリティ10大脅威」とは
73
+ 23 2019年最大の脅威は「スマホ決済の不正利用」 IPAが発表
74
+ 24 総務省、日本が早急に取り組むべきサイバーセキュリティ対策を発表 近年のインシデントを踏まえ
75
+ 25 この頃、セキュリティ界隈で:
76
+ 26 進化を続けるマルウェア、ファイルレス攻撃とは何か
77
+ 27 “5G前夜”、IoT機器への攻撃に備えよ 対策の鍵は「自動化」と「ゼロトラスト」
78
+ 28 開発者に優しいセキュリティを目指す:
79
+ 29 クラウドはセキュリティ上「最も弱い鎖」? Check Pointが指摘
31
80
  ```

2

d

2020/02/09 09:06

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  id が `hogehoge` である要素の子要素の p タグを取得する CSS セレクタは、`#hogehoge > p` ではないでしょうか。
2
2
  子孫要素も含む場合は `#hogehoge p` です。
3
3
 
4
- コメントやスクリプトタグ削除するコードがありますが、CSS セレクタでほしい要素だけ選択すればいいので、その処理はなくていいと思います。
4
+ コメントやスクリプトタグ削除するコードがありますが、CSS セレクタでほしい要素だけ選択すればいいので、その処理はなくていいと思います。
5
5
 
6
6
  [スタイルシートリファレンス(目的別)](http://www.htmq.com/style/#sel)
7
7
 

1

d

2020/02/09 08:24

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -3,6 +3,8 @@
3
3
 
4
4
  コメントやスクリプトタグの削除はするコードがありますが、CSS セレクタでほしい要素だけ選択すればいいので、その処理はなくていいと思います。
5
5
 
6
+ [スタイルシートリファレンス(目的別)](http://www.htmq.com/style/#sel)
7
+
6
8
  ```python
7
9
  html = """
8
10
  <div id="hogehoge">