質問編集履歴
2
質問内容を修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
|
20
20
|
|
21
|
-
_Modulelockを調べたのですがさっぱり分からず…。申し訳ありませんが教えて下さ。よろしくお願い致します。
|
21
|
+
_Modulelockを調べたのですがさっぱり分からず…。申し訳ありませんが教えて下さい。よろしくお願い致します。
|
22
22
|
|
23
23
|
|
24
24
|
|
1
質問内容を変更しました。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
【Python
|
1
|
+
【Python】コマンドプロンプトからのPython起動とスクレイピング
|
test
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
「退屈なことはPythonにやらせよう」11章のWebスクレイピングで、Googleの検索結果上位5件を自動で開くプログラムを書いているのですが、
|
1
|
+
「退屈なことはPythonにやらせよう」11章のWebスクレイピングで、Googleの検索結果上位5件を自動で開くプログラムを書いているのですが、下記の2点で躓いています。
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
1.本書ではコマンドプロンプトに「'拡張子なしのファイル名' '検索したいワード'」で
|
5
|
+
1.本書ではコマンドプロンプトに「'拡張子なしのファイル名' '検索したいワード'」でプログラムが実行されると書いてあるのですが、「[Errno 2] No such file or directory」のエラーが出てしまう。「'ファイル名.py' '検索したいワード'」にすると上手くいくのですが、違いが調べてもわかりません。PathにPython.exeのディレクトリを設定したりスクリプトがあるフォルダを設定しましたが駄目でした。
|
6
6
|
|
7
7
|
|
8
8
|
|
@@ -14,7 +14,11 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
+
→2.に関してはbs4.BeautifulSoupの第2引数に'html.parser'を入れて解決しましたが、コマンドプロンプトで実行すると「Loading...」が表示されるだけ、Anacondaのインタラクティブシェルで実行するとAttributeError: '_ModuleLock' object has no attribute 'name'が表示されてしまいます。
|
18
|
+
|
19
|
+
|
20
|
+
|
17
|
-
の
|
21
|
+
_Modulelockを調べたのですがさっぱり分からず…。申し訳ありませんが教えて下さ。よろしくお願い致します。
|
18
22
|
|
19
23
|
|
20
24
|
|
@@ -30,9 +34,9 @@
|
|
30
34
|
|
31
35
|
|
32
36
|
|
33
|
-
print(
|
37
|
+
print("Loading...")
|
34
38
|
|
35
|
-
res = requests.get(
|
39
|
+
res = requests.get("https://google.com/search?q=" + " ".join(sys.argv[1:]))
|
36
40
|
|
37
41
|
res.raise_for_status()
|
38
42
|
|
@@ -40,9 +44,9 @@
|
|
40
44
|
|
41
45
|
#TODO 上位の検索結果のリンクを取得する
|
42
46
|
|
43
|
-
soup = bs4.BeautifulSoup(res.text)
|
47
|
+
soup = bs4.BeautifulSoup(res.text, "html.parser")
|
44
48
|
|
45
|
-
link_elems = soup.select(
|
49
|
+
link_elems = soup.select(".r a")
|
46
50
|
|
47
51
|
|
48
52
|
|
@@ -52,6 +56,6 @@
|
|
52
56
|
|
53
57
|
for i in range(num_open):
|
54
58
|
|
55
|
-
webbrowser.open(
|
59
|
+
webbrowser.open("https://google.com" + link_elems[i].get("href"))
|
56
60
|
|
57
61
|
```
|