回答編集履歴
3
解決策の追加
answer
CHANGED
@@ -1,3 +1,32 @@
|
|
1
|
+
##追記
|
2
|
+
ご回答を受けて、<body>の子タグの<body>の子タグの<name>と指定したところ、そちらでもうまくいきました!
|
3
|
+
(パーサーを他に替えてもどうしてもHTMLと認識してしまうこともあるので……)
|
4
|
+
|
5
|
+
```Python
|
6
|
+
import lxml.html
|
7
|
+
import selenium
|
8
|
+
from selenium import webdriver
|
9
|
+
from bs4 import BeautifulSoup
|
10
|
+
|
11
|
+
bodytype=[]
|
12
|
+
|
13
|
+
url='http://webservice.recruit.co.jp/carsensor/usedcar/v1/?key=(APIキー)&model='
|
14
|
+
|
15
|
+
driver = webdriver.Chrome('C:\selenium\chromedriver')
|
16
|
+
|
17
|
+
driver.get(url + "プリウス")
|
18
|
+
data = driver.page_source.encode('utf-8')
|
19
|
+
soup = BeautifulSoup(data, "lxml")
|
20
|
+
|
21
|
+
if soup.find("name"):
|
22
|
+
bodytype.append(soup.find("body").find("body").find("name").string)
|
23
|
+
else:
|
24
|
+
bodytype.append(None)
|
25
|
+
|
26
|
+
driver.quit()
|
27
|
+
```
|
28
|
+
|
29
|
+
##自己解決
|
1
30
|
根本的な原因はわからないままなのですが、「<body>の子要素の<name>」という風に親要素との関連で定義するのを諦めて、「2つ目の<name>タグ」という条件で指定するようにしたところ、一応本来の目的は達成できました。
|
2
31
|
|
3
32
|
```Python
|
2
文法を修正
answer
CHANGED
@@ -17,7 +17,6 @@
|
|
17
17
|
soup = BeautifulSoup(data, "lxml")
|
18
18
|
|
19
19
|
if soup.find("name"):
|
20
|
-
body = soup.find("body")
|
21
20
|
bodytype.append(soup.find("name")[1].string)
|
22
21
|
else:
|
23
22
|
bodytype.append("NA")
|
1
文法を修正
answer
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
data = driver.page_source.encode('utf-8')
|
17
17
|
soup = BeautifulSoup(data, "lxml")
|
18
18
|
|
19
|
-
if soup.find("name")
|
19
|
+
if soup.find("name"):
|
20
20
|
body = soup.find("body")
|
21
21
|
bodytype.append(soup.find("name")[1].string)
|
22
22
|
else:
|