無法利用 pyquery 的 filter 取得指定 class?
2021/06/20 上午 09:27
更多的資料爬蟲工具介紹 - PyQuery/grab
陳柏翰
觀看數:25
回答數:2
收藏數:1
在做作業的時候,嘗試利用以下程式碼取得
中的文字,但卻一直失敗,想詢問各位前輩老師們該如何利用 pyquery 取得指定的 class 的內容
```python
from grab import Grab
from pyquery import PyQuery as pq
url = 'https://www.dcard.tw/f'
g = Grab()
resp = g.go(url)
doc = pq(resp.body)
target = doc('body').find('div').filter('.tgn9uw-4 jtaqbD').find('span')
print(target)
```
備註: 印出的結果為空 無錯誤訊息
附上使用 BS4 印出的結果
![擷取.PNG](http://kwassistfile.cupoy.com/0000017A2705109F000000056375706F795F72656C656173655155455354/1623842559466/large)
回答列表
-
2021/07/09 下午 08:46Ray贊同數:0不贊同數:0留言數:0
您好,請問您的問題是抓取結果為None嗎? 如果是的話,我想您的問題可能是因為資料類型不同導致的,因為pyquery能夠抓取的資料類型是html類型,若您所想要抓取的是xhtml類型的資料的話,會需要在pq()中加上parser="html"來告訴pyquery您使用的是html類型的。 希望這可以幫助到您~
-
2022/02/24 下午 05:02Sung-Yi Wang贊同數:0不贊同數:0留言數:0
空白在class屬性內為分隔符,所以tgn9uw-4 jtaqbD會被視為兩個class,正確selector語法應為.tgn9uw-4.jtaqbD