iT邦幫忙

0

class="title"出了什麼問題?

各位大神們好:

Python 3.9.6
BeautifulSoup 4.9.3

我跟著YT影片練習,附上影片截圖
YT影片 23分37秒處
https://www.youtube.com/watch?v=9Z9xKWfNo7k&list=PL-g0fdC5RMboYEyt6QS2iLb_1m7QcgfHk&index=19&t=1234s

https://ithelp.ithome.com.tw/upload/images/20210711/20139401P93yqNRGPz.png

目前我照著影片編碼,現在練習到要找PTT電影板中第一個標題,就在div標籤中的class="title"
附上PTT截圖
https://ithelp.ithome.com.tw/upload/images/20210711/20139401E70IPyVoms.png

我的編碼
import urllib.request as req
url="https://www.ptt.cc/bbs/movie/index.html"
request=req.Request(url, headers={
"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
})
with req.urlopen(request) as response:
data=response.read().decode("utf-8")
import bs4
root=bs4.BeautifulSoup(data, "html.parser")
titles=root.find("div", class="title") #<=======這句有問題??
print(titles)

跑出來的結果有問題,篩選class="title"倒底出了什麼問題? 在這句之上的都跑過都沒問題。
titles=root.find("div", class="title")
^
SyntaxError: invalid syntax

沒法跑出跟影片中的一樣
https://ithelp.ithome.com.tw/upload/images/20210711/20139401uOcNgeO3CZ.png

希望大大們能幫忙找出問題,為什麼我的bs4卻find不到? 就算改成find_all也找不到? 因為YT影片是2019年的,是不是bs4有更新過? 感謝。

Wilion iT邦新手 4 級 ‧ 2021-07-11 22:08:50 檢舉
class 是 Python 的保留字,所以 Beautiful Soup 改以 class_這個名稱代表 HTML 節點的 class 屬性。
謝謝大神指點!

1 個回答

0
uobik
iT邦新手 4 級 ‧ 2021-07-11 20:43:15
最佳解答

請參考
Searching by CSS class

https://ithelp.ithome.com.tw/upload/images/20210711/20138982ELGtikqFTb.png

可使用 class_=

謝謝大神指點! 我會多研究一下該網站的,感謝。

我要發表回答

立即登入回答