看板 Python 關於我們 聯絡資訊
板上的各位大大們好,最近剛開始自學爬蟲,知道可以用find_all去抓所有同標籤和屬性 下的網頁文字內容,但想請問如果我想抓html裡面的特定內容,沒有顯示在網頁的那種, 如下圖的黃色miaowu2020的部分該如何下手呢?謝謝! https://i.imgur.com/NhgYWme.jpg 附上我抓其他網頁內容的程式 https://i.imgur.com/uuSK3Io.jpg -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.82.62.74 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1662051879.A.BCC.html
AndCycle: 印象裡 find_all("a", {"data-item-id": "miaowu2020"})09/02 03:14
剛試過好像不是,因為我是想找所以data-item-id後面的名字QQ
JerryChungYC: get("data-item-id")09/02 03:50
謝謝J大,剛剛研究一下用get好像可以抓出來了,但多了很多顯示為none 的值就是... https://i.imgur.com/POoLHJe.jpg https://i.imgur.com/5MxaSQ7.jpg ※ 編輯: etudiant (111.82.62.74 臺灣), 09/02/2022 13:24:58
lycantrope: 你有看過t.attrs嗎09/02 14:37
etudiant: l大您好,我沒看過我來研究一下,謝謝您09/02 14:55
※ 編輯: etudiant (111.82.62.74 臺灣), 09/02/2022 15:45:44
surimodo: 程式碼不要用截圖盡量用線上文本 貼圖很難Debug 09/02 16:16
etudiant: 謝謝S大提醒,我等到貼上來文字 09/02 16:28
import requests import bs4 import time import random URL="https://www.zeczec.com/categories?category=16&page=1&type=crowdfunding" headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKi t/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'} response = requests.get(URL,headers=headers) soup = bs4.BeautifulSoup(response.text,"html.parser") cash = soup.find_all('div','font-bold leading-8') for c in cash: print(c.text.strip()) for name in soup.find_all('a'): print(name.get('data-item-id')) delay_choices = [8, 5, 10, 6, 20, 11] delay = random.choice(delay_choices) time.sleep(delay) ※ 編輯: etudiant (111.82.62.74 臺灣), 09/02/2022 16:29:08
etudiant: 目前主要是想在這個網站外面總覽的部分先抓好每一個商品 09/02 16:32
etudiant: 的id,因為有發現它點進去個別商品的網頁名稱最後都是 09/02 16:32
etudiant: 用data-item-id結尾的,想說也許這樣一次爬下來就能設計 09/02 16:32
etudiant: 一個一口氣抓完個別內容的程式碼(? 09/02 16:32
lycantrope: 可以嘗試一下if else來篩選非None的值吧 09/02 16:47
surimodo: https://paste.ee/p/7jvvN 09/02 19:26
surimodo: https://paste.ee/p/xOxLW 最後改迴圈 09/02 19:31
etudiant: 非常謝謝樓上s大,我馬上來研究一下!! 09/02 20:04
surimodo: 不懂再問^^ 09/02 20:20
etudiant: 感謝好心s大,大致上都看懂了,除了attrs[]那邊的用法 09/02 21:18
etudiant: 我不太懂可能要花點時間補些資料看XD 09/02 21:18