想請問 標籤裡定位的方式 以及參考Sample檔程式碼未產生KeyError
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:55Chu 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
---
以上希望有回答到您的問題!