Re: [問題] 網頁爬蟲

看板Python作者 (樹枝擺擺)時間7年前 (2018/07/29 11:32), 7年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《TimJack (飽喀喀)》之銘言: : 各位大大好 : 請問以下code: : from urllib.request import urlopen : from bs4 import BeautifulSoup : html_doc ='http://www.twse.com.tw/fund/BFI82U' : soup = BeautifulSoup(html_doc,'html.parser') : for i in soup.body.tbody.find_all('tr'): : print(i.td.get_text()) : 列印如下錯誤: : AttributeError Traceback (most recent call last) : <ipython-input-22-f987a99b5e34> in <module>() : 4 soup = BeautifulSoup(html_doc,'html.parser') : ----> 5 for i in soup.body.tbody.find_all('tr'): : 6 print(i.td.get_text()) : AttributeError: 'NoneType' object has no attribute 'tbody' : 請問各位大大 : 為何會這樣呢 : 謝謝 html_doc那個網址本身是json檔,缺乏html標籤, 所以用BeautifulSoup解析不到任何東西 先把html_doc用requests.post抓下來,此時變數型態是response, 再用json函式庫把那個看起來像json的response的變數型態轉換成json 再把這個json的變數型態轉換成dict,就可以依序抓出 import requests from bs4 import BeautifulSoup import json payload = {'respose':'html','type':'today'} url = requests.post('http://www.twse.com.tw/fund/BFI82U',data=payload) json_data = json.loads(url.text) # 下面只是變成資料庫的格式,可略過 fields_list = json_data['fields'] for data_list in json_data['data']: for i in range(1,4): print(fields_list[0],',',data_list[0],',',fields_list[i],',',data_list[i]) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.227.166.43 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1532835178.A.6A2.html ※ 編輯: liquidbox (36.227.166.43), 07/29/2018 11:33:40
文章代碼(AID): #1RNJLgQY (Python)
討論串 (同標題文章)
本文引述了以下文章的的內容:
1
1
完整討論串 (本文為第 2 之 3 篇):
0
3
1
1
文章代碼(AID): #1RNJLgQY (Python)