[問題] BeautifulSoup 新手問題

看板Python作者 (鏡華)時間7年前 (2018/03/14 11:56), 編輯推噓4(4015)
留言19則, 2人參與, 7年前最新討論串1/1
各位前輩好,小弟 剛開始接觸Python,最近剛學到BeautifulSoup做爬蟲 於是就想要試著實做看看,但是看了老半天還是不是很了解 soup.get_text、soup.content等差別 還有bs4.element.Tag到底有那些指令是可以用的 目前小弟用yahoo的電影排行做練習,程式碼如下: ----- url='https://movies.yahoo.com.tw/chart.html' TAG='div' TAGClass='tr' geturl = requests.get(url) soup = BeautifulSoup(geturl.text, 'lxml') articles=soup(TAG, TAGClass) for article in articles: Rank=article.find('div','td').contents Title=article.find('div','rank_txt') print(Rank,Title) print(type(article),type(Rank),type(Title)) ---- 本來是想做出列出排名、電影名稱等資訊 但不知為何Title這邊不能用.contents來抓出裡面的電影名稱(但是Rank卻可以) 也不能用get_Text(說不支援) 網頁查了老半天還是找不到方法@@ 因此來此請較各位前輩,看小弟到底是哪些觀念有問題 (另外想確認一下,一般是在尋找資料時 是會從要抓的資料上一層的Tag跟tag class來往下用for迴圈這樣尋找嗎? 還是其實有比較簡單的做法呢?) 先謝謝各位前輩了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.13.206 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1520999764.A.395.html

03/14 16:00, 7年前 , 1F

03/14 16:02, 7年前 , 2F
find_all()應該會是你要的
03/14 16:02, 2F

03/14 16:13, 7年前 , 3F
感謝f大,但是我目前用上面程式碼跑的結果是如下:
03/14 16:13, 3F

03/14 16:13, 7年前 , 4F
['2'] <div class="rank_txt">紅雀</div>
03/14 16:13, 4F

03/14 16:14, 7年前 , 5F
前面的[2]用content提出來,但是後面名字卻提不出來
03/14 16:14, 5F

03/14 16:15, 7年前 , 6F
find_all我看到可用加關鍵字,但是片名似乎無法?
03/14 16:15, 6F

03/14 16:33, 7年前 , 7F
因為你的Title第1個會是None(bs4沒找到),當然不會有cont
03/14 16:33, 7F

03/14 16:34, 7年前 , 8F
contents可以給你抓啊。
03/14 16:34, 8F

03/14 16:35, 7年前 , 9F

03/14 16:36, 7年前 , 10F
你可以看我改過的範例
03/14 16:36, 10F

03/14 16:58, 7年前 , 11F
f大的結果就是我想做出來的啊(泣)~但想請問一下
03/14 16:58, 11F

03/14 16:58, 7年前 , 12F
if A and B一般是兩者成立,所以這邊是兩者都有找到
03/14 16:58, 12F

03/14 16:59, 7年前 , 13F
才print出來的意思嗎?
03/14 16:59, 13F

03/14 17:04, 7年前 , 14F
對,沒找到會傳回 None,None typeˉ當然不會有contents等
03/14 17:04, 14F

03/14 17:04, 7年前 , 15F
屬性,你要程式印出 None.contents,我們可愛的蟒蛇當然會
03/14 17:04, 15F

03/14 17:04, 7年前 , 16F
生氣氣的跟你說「你唬我喔」。
03/14 17:04, 16F

03/14 17:04, 7年前 , 17F
所以要檢查傳回結果都不是 None,才能存取contents屬性。
03/14 17:04, 17F

03/14 17:10, 7年前 , 18F
另外可以去學 pyquery,學會你也會用 CSS selector 了。
03/14 17:10, 18F

03/15 04:51, 7年前 , 19F
收到,感謝f大的指點
03/15 04:51, 19F
文章代碼(AID): #1Qg9rKEL (Python)
文章代碼(AID): #1Qg9rKEL (Python)