[問題] 請問如何理解網頁結構以抓資料

看板Python作者 (poorguy)時間6年前 (2019/04/27 17:29), 編輯推噓1(1038)
留言39則, 3人參與, 6年前最新討論串1/1
版上各位先進大家好 我目前正在嘗試用BeautifulSoup抓資料 但我碰到一個問題 我的程式有試出來 但是我發現我不懂如何使用RSS看到網頁的XML版 這樣日後會造成很大的麻煩 舉例來說 我首先以YAHOO測試 https://tw.info.yahoo.com/rss/ 然後以奇摩股市來當真正的目標 https://tw.stock.yahoo.com/rss/url/d/e/N2.html 因為我不知道如何看到XML版的資料 (原本書上可以,但我試不出來) 所以我反而是照著書嘗試出成果 https://pastebin.com/5503ppZs 所以我完全不知道第5行程式裡的item怎麼來的 我也有嘗試網頁+F12 但是也找不到item 而且在程式的結果中 底下各個文章的標題的標籤是<title>(例如第7行程式) 可是當我去看網頁時 卻是看到https://imgur.com/a/MUi5Vnu 根本沒有出現title 所以我想請教 如何看到網頁的內容 來決定要抓網頁的那個相對應標籤 例如看XML檔案(其他方法亦可) 不然我以後要到別的網頁抓資料根本走不下去 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.161.225.194 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1556357368.A.0DD.html

04/27 18:08, 6年前 , 1F
你可以試著用 Python 內建的 urllib 或是如果你有
04/27 18:08, 1F

04/27 18:08, 6年前 , 2F
request 也可以 去把你貼的那個網址抓下來後再存檔
04/27 18:08, 2F

04/27 18:09, 6年前 , 3F
開你抓下來的檔案應該就會看到 xml 了
04/27 18:09, 3F

04/27 18:10, 6年前 , 4F
Yahoo 的網站有判斷你是不是用瀏覽器開 如果用瀏覽
04/27 18:10, 4F

04/27 18:10, 6年前 , 5F
器開你就會看到訂閱 rss 的說明
04/27 18:10, 5F

04/27 21:23, 6年前 , 6F
給dododavid006,多謝你的建議,我有去找資料
04/27 21:23, 6F

04/27 21:25, 6年前 , 7F
https://reurl.cc/epq5m,不知為何上面兩組程式的寫法
04/27 21:25, 7F

04/27 21:37, 6年前 , 8F
04/27 21:37, 8F

04/27 21:39, 6年前 , 9F
https://imgur.com/a/qAchwwv,抱歉PASTEBIN忙線連不上
04/27 21:39, 9F

04/27 21:40, 6年前 , 10F
再者,我也想請教您如何把結果抓下來存檔
04/27 21:40, 10F

04/27 23:31, 6年前 , 11F
其實確實能抓下來 https://i.imgur.com/OpvFiOy.png
04/27 23:31, 11F

04/27 23:32, 6年前 , 12F
至於存檔也只是方便你用其它軟體讀而已 就只是開檔
04/27 23:32, 12F

04/27 23:32, 6年前 , 13F
再把內容寫進去而已
04/27 23:32, 13F

04/27 23:32, 6年前 , 14F
with open("檔名.xml", "wb"):
04/27 23:32, 14F

04/27 23:33, 6年前 , 15F
with open("檔名.xml", "wb") as f: # 更正
04/27 23:33, 15F

04/27 23:34, 6年前 , 16F
f.write(urllib.request.urlopen("url").read())
04/27 23:34, 16F

04/27 23:51, 6年前 , 17F

04/27 23:51, 6年前 , 18F
用這個看就看得到xml格式了 你研究看看是什麼原因造成
04/27 23:51, 18F

04/27 23:52, 6年前 , 19F
直接用browser跟用rss reader取回來的資料差異
04/27 23:52, 19F

04/27 23:52, 6年前 , 20F
可能是某個表頭會讓response吐xml 另個表頭是吐回html
04/27 23:52, 20F

04/27 23:53, 6年前 , 21F
你直接用rss xml python requests當關鍵字搜尋看看
04/27 23:53, 21F

04/27 23:53, 6年前 , 22F
喔喔 一樓有解答了
04/27 23:53, 22F

04/28 14:07, 6年前 , 23F
給dododavid006,感謝你的協助,我照著打你給的程式
04/28 14:07, 23F

04/28 14:08, 6年前 , 24F
嘗試,後面就有出現一堆資料,但也因此我發現了新問題
04/28 14:08, 24F

04/28 14:09, 6年前 , 25F
出來的結果是網站的原始資料,所以不會出現中文名稱
04/28 14:09, 25F

04/28 14:11, 6年前 , 26F
而且結果是連續的出來,即使我轉貼到WORD而比較有結構
04/28 14:11, 26F

04/28 14:12, 6年前 , 27F
也依然沒有中文,包含我用vi000246給的網站也是如此
04/28 14:12, 27F

04/28 14:13, 6年前 , 28F
請問這是否代表這才是抓資料的常態,也就是要去猜欄位
04/28 14:13, 28F

04/28 14:14, 6年前 , 29F
因為我原本是想要讓抓取欄位資料匯出成檔案
04/28 14:14, 29F

04/28 14:15, 6年前 , 30F
例如WORD或是EXCEL,但這在那之前我要去懂如何猜欄位
04/28 14:15, 30F

04/28 14:16, 6年前 , 31F
與標籤之間的關係才行?請問兩位先進都是怎麼做的呢?
04/28 14:16, 31F

04/28 14:17, 6年前 , 32F
另外我也有試著用RSS閱讀器,但不知為何是這樣
04/28 14:17, 32F

04/28 14:19, 6年前 , 33F
04/28 14:19, 33F

04/28 14:20, 6年前 , 34F
並沒有出現檔案的網頁程式資料,請問我是挑錯軟體了嗎
04/28 14:20, 34F

04/28 14:21, 6年前 , 35F
還是我有地方不對,也想請教大家
04/28 14:21, 35F

04/28 18:49, 6年前 , 36F
感謝dododavid006+vi000246,總算試出成果了
04/28 18:49, 36F

04/28 18:49, 6年前 , 37F

04/28 18:59, 6年前 , 38F
另外還可以略做調整成這樣(前面已知跳過去)
04/28 18:59, 38F

04/28 18:59, 6年前 , 39F
文章代碼(AID): #1Sn23u3T (Python)
文章代碼(AID): #1Sn23u3T (Python)