質問編集履歴

2

内容の修正

2023/01/27 15:58

投稿

Takananashi
Takananashi

スコア3

test CHANGED
@@ -1 +1 @@
1
- **削除まし**
1
+ requests_htmlのAsyncHTMLSessionを利用したスクレイピング
test CHANGED
@@ -1,4 +1,29 @@
1
- プログラムがうまくいっていないと勘違いして質問をしてしまいました。
2
- 質問が成り立っていなかったため削除まし
1
+ ### 実現したいこと
3
2
 
3
+ Spyder(Python 3.9)でrequests_htmlを使いたい
4
4
 
5
+ ### 発生している問題・エラーメッセージ
6
+
7
+ ```
8
+ AttributeError: 'Future' object has no attribute 'html'
9
+ ```
10
+
11
+ ### 該当のソースコード
12
+
13
+ ```python
14
+ # -*- coding: utf-8 -*-
15
+
16
+ from requests_html import AsyncHTMLSession
17
+ import asyncio
18
+
19
+ if asyncio.get_event_loop().is_running(): # Only patch if needed (i.e. running in Notebook, Spyder, etc)
20
+ import nest_asyncio
21
+ nest_asyncio.apply()
22
+
23
+ url = "https://www.google.com/?hl=ja"
24
+
25
+ session = AsyncHTMLSession()
26
+ r = session.get(url)
27
+ r.html.render()
28
+ print("finished")
29
+ ```

1

間違えた内容を質問してしまった

2023/01/27 12:06

投稿

Takananashi
Takananashi

スコア3

test CHANGED
@@ -1 +1 @@
1
- requests-htmlを利用した動的なサイトのスクレイピング
1
+ **削除まし**
test CHANGED
@@ -1,61 +1,4 @@
1
+ プログラムがうまくいっていないと勘違いして質問をしてしまいました。
1
- ### 実現したいこと
2
+ 質問が成り立っていなかったため削除まし
2
3
 
3
- Webサイトの表(縦12横5)の中のデータの、上から3番目で左から2番目のデータを取得したい
4
4
 
5
- ### 前提
6
-
7
- そのWebサイトの表のデータは常に(毎秒?)変化していて、どう変化したかに応じてタグが下に示す3通りに書き変わる。
8
- <td class='trit'><td>
9
- <td class='trit is-plus'><td>
10
- <td class='trit is-minus'><td>
11
-
12
- ### 発生している問題
13
-
14
- タグのようなものは取得できるが、中身のデータが取得できない
15
-
16
- ### 実行したプログラム
17
-
18
- ```python
19
- # -*- coding: utf-8 -*-
20
-
21
- from requests_html import HTMLSession
22
-
23
- print("-----started-----")
24
-
25
- url = ""#実行時はurlを入れていますが、ここでは省略します
26
-
27
- session = HTMLSession()
28
- r = session.get(url)
29
-
30
- r.html.render()
31
-
32
- list1 = r.html.find(
33
- "[class='trit'],[class='trit is-plus'],[class='trit is-minus']"
34
- , first = False)
35
-
36
- print()
37
- print("type(list1)")
38
- print(type(list1))
39
- print()
40
- print("len(list1)")
41
- print(len(list1))
42
- print()
43
- print("list1")
44
- print(list1)
45
-
46
- print("-----finished-----")
47
- ```
48
-
49
- ###実行結果
50
-
51
- -----started-----
52
-
53
- type(list1)
54
- <class 'list'>
55
-
56
- len(list1)
57
- 60
58
-
59
- list1
60
- [<Element 'td' class=('trit', 'is-plus')>, <Element 'td' class=('trit', 'is-minus')>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit', 'is-minus')>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit', 'is-minus')>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit', 'is-minus')>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit', 'is-minus')>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit', 'is-minus')>, <Element 'td' class=('trit', 'is-minus')>, <Element 'td' class=('trit', 'is-minus')>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit', 'is-minus')>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit', 'is-minus')>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit', 'is-minus')>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit', 'is-minus')>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit', 'is-plus')>, <Element 'td' class=('trit', 'is-plus')>, <Element 'td' class=('trit', 'is-minus')>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit', 'is-plus')>, <Element 'td' class=('trit', 'is-minus')>, <Element 'td' class=('trit', 'is-plus')>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit',)>, <Element 'td' class=('trit', 'is-minus')>]
61
- -----finished-----