出現AttributeError: 'NoneType' object has no attribute 'span'錯誤
1.不知是不是改版??? 變成 期待度跟滿意度都是要如何改 <div class="leveltext">
2.另外問題 可以用 文字去搜尋 反向找節點嗎??
用程式 滿意度 而找到 <dl class="levelbox">
------------------------------------------------------------------
<dl class="levelbox">
<dt>
<div class="level_name">期待度</div>
<div class="leveltext">
<span>69%</span>
網友想看
</div>
</dt>
<dd>
<div class="level_name">滿意度</div>
<div class="leveltext">
<span class="count" data-run="0" data-num="3.2">3.2</span>
綜合評分
</div>
</dd>
</dl>
回答列表
-
2019/12/31 下午 08:49Jeffrey贊同數:1不贊同數:0留言數:0
請問一下,你的問題是針對沒有”span” API 的問題? 這個是版本的問題,可以更新套件。
其他的是問題1?還是只有問題2?
-
2020/01/02 上午 10:23張維元 (WeiYuan)贊同數:2不贊同數:0留言數:1
1.不知是不是改版??? 變成 期待度跟滿意度都是要如何改 <div class="leveltext">
=> 嗨,原因是 Yahoo 電影 的網站後來有改版過,原本參考解答給的 starwithnum 這個 class 被拿掉了。建議統一改成 leveltext 去找(可以參考一下之前同學討論的文章)。
2. 另外問題 可以用 文字去搜尋 反向找節點嗎?? 用程式 滿意度 而找到 <dl class="levelbox">
=> 但是這個邏輯必須要自己寫, BeatifulSoup 套件並沒有提供這樣的做法。
-
2020/01/02 下午 05:23張維元 (WeiYuan)贊同數:2不贊同數:0留言數:0
應該是新版的網頁把「starwithnum」這個 Class 拿掉了,剛剛看網頁長這樣:
正確寫法應該改成用 leveltext 來取(但是會跟期待度重複,所以改成 find_all 取 [1]):
```
satisfaction = level_box.find_all("div", attrs={"class":"leveltext"})[1]
print("滿意度:", satisfaction.span["data-num"])
```