logo
Loading...

想請問 標籤裡定位的方式 以及參考Sample檔程式碼未產生KeyError - Cupoy

想請問 如果我要擷取 標籤裡的屬性,我該如何做定位 attrs的使用時機為何,跟例如:class_=...

想請問 標籤裡定位的方式 以及參考Sample檔程式碼未產生KeyError

2021/10/14 下午 10:51
Yahoo! 電影網頁爬蟲實作練習
Allen Chen
觀看數:44
回答數:1
收藏數:0

1. 想請問 如果我要擷取 標籤裡的屬性,我該如何做定位 2.attrs的使用時機為何,跟例如:class_='item' 差別是什麼? 3.要如何理解這段程式碼 payload = {'page':str(page_number)} resp = requests.get(url, params=payload) 謝謝 老師 專家 ![16546.png](http://kwassistfile.cupoy.com/0000017C7F401ADE000000126375706F795F72656C656173655155455354/1632821348719/large) ![10101.png](http://kwassistfile.cupoy.com/0000017C7F401ADE000000126375706F795F72656C656173655155455354/1632821348720/large) ![attrs.png](http://kwassistfile.cupoy.com/0000017C7F401ADE000000126375706F795F72656C656173655155455354/1632821348722/large) ![要如何理解.png](http://kwassistfile.cupoy.com/0000017C7F401ADE000000126375706F795F72656C656173655155455354/1632821348721/large)

回答列表

  • 2021/10/15 下午 03:55
    Chu Jia Ping
    贊同數:1
    不贊同數:0
    留言數:0

    ### 1. 想請問 如果我要擷取 標籤裡的屬性,我該如何做定位 會 KeyError 的原因是前面的這段抓出來是空的 ```python level_box.find("div", attrs={"class":"leveltext starwithnum"}) ``` 看了一下網站原始碼,可能是因為現在已經找不到 `starwithnum` 這個 class 我這邊建議可以直接去抓 span 的 data-num 屬性,如下: ```python satisfaction = level_box.find("span", attrs={"class": "count"}) print("滿意度:", satisfaction['data-num']) # 滿意度: 3.7 ``` --- ### 2. attrs的使用時機為何,跟例如 class='item' 差別是什麼? attrs 這個參數要看網頁是怎麼寫的 例如下面這是想要抓 `

    ` 這樣的 tag 時才會使用 ```python movie_name.find("dl", attrs={"class": "levelbox"}) ``` 若想要抓的 tag 是 `
    ` 那就要改寫成 ```python movie_name.find("dl", attrs={"class": "item"}) ``` --- ### 3. 要如何理解這段程式碼 可以理解成 url 後面帶了查詢參數 (要查的 key=page, value=page_number) ```python payload = {'page': str(page_number)} resp = requests.get(url, params=payload) # 也就是 GET:https://movies.yahoo.com.tw/movie_intheaters.html?page=str(page_number) ``` 例如: 當我們要抓第一頁的時候 (page_number=1) 就是去 GET 這個網址 https://movies.yahoo.com.tw/movie_intheaters.html?page=1 --- 以上希望有回答到您的問題!