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

作者: alubasteve (poorguy)   2019-04-27 17:29:24
版上各位先進大家好
我目前正在嘗試用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行程式)
可是當我去看網頁時
卻是看到

根本沒有出現title
所以我想請教
如何看到網頁的內容
來決定要抓網頁的那個相對應標籤
例如看XML檔案(其他方法亦可)
不然我以後要到別的網頁抓資料根本走不下去
作者: dododavid006 (朔雪)   2019-04-27 18:08:00
你可以試著用 Python 內建的 urllib 或是如果你有request 也可以 去把你貼的那個網址抓下來後再存檔開你抓下來的檔案應該就會看到 xml 了Yahoo 的網站有判斷你是不是用瀏覽器開 如果用瀏覽器開你就會看到訂閱 rss 的說明
作者: alubasteve (poorguy)   2019-04-27 21:23:00
給dododavid006,多謝你的建議,我有去找資料https://reurl.cc/epq5m,不知為何上面兩組程式的寫法都沒有反應," target="_blank" rel="nofollow">
," target="_blank" rel="nofollow">
,
抱歉PASTEBIN忙線連不上再者,我也想請教您如何把結果抓下來存檔
作者: dododavid006 (朔雪)   2019-04-27 23:31:00
其實確實能抓下來 https://i.imgur.com/OpvFiOy.png至於存檔也只是方便你用其它軟體讀而已 就只是開檔再把內容寫進去而已with open("檔名.xml", "wb"):with open("檔名.xml", "wb") as f: # 更正f.write(urllib.request.urlopen("url").read())
作者: vi000246 (Vi)   2019-04-27 23:51:00
https://countwordsfree.com/xmlviewer用這個看就看得到xml格式了 你研究看看是什麼原因造成直接用browser跟用rss reader取回來的資料差異可能是某個表頭會讓response吐xml 另個表頭是吐回html你直接用rss xml python requests當關鍵字搜尋看看喔喔 一樓有解答了
作者: alubasteve (poorguy)   2019-04-28 14:07:00
給dododavid006,感謝你的協助,我照著打你給的程式嘗試,後面就有出現一堆資料,但也因此我發現了新問題出來的結果是網站的原始資料,所以不會出現中文名稱而且結果是連續的出來,即使我轉貼到WORD而比較有結構也依然沒有中文,包含我用vi000246給的網站也是如此請問這是否代表這才是抓資料的常態,也就是要去猜欄位因為我原本是想要讓抓取欄位資料匯出成檔案例如WORD或是EXCEL,但這在那之前我要去懂如何猜欄位與標籤之間的關係才行?請問兩位先進都是怎麼做的呢?另外我也有試著用RSS閱讀器,但不知為何是這樣," target="_blank" rel="nofollow">
,
我是用Inoreader並沒有出現檔案的網頁程式資料,請問我是挑錯軟體了嗎還是我有地方不對,也想請教大家感謝dododavid006+vi000246,總算試出成果了https://pastebin.com/b84hJAaw另外還可以略做調整成這樣(前面已知跳過去)https://pastebin.com/KAs4n5bA

Links booklink

Contact Us: admin [ a t ] ucptt.com