csv - python多列存取爬蟲網頁?
問題描述
爬蟲抓取的資料想分列存取在tsv上,試過很多方式都沒有辦法成功存存取成兩列資訊。想存取為數字爬取的資料一列,底下類型在第二列
from urllib.request import urlopenfrom bs4 import BeautifulSoupimport reimport csvhtml = urlopen('http://www.app12345.com/?area=tw&store=Apple%20Store')bs0bj = BeautifulSoup (html)def GPname(): GPnameList = bs0bj.find_all('dd',{'class':re.compile('ddappname')}) str = ’’ for name in GPnameList:str += name.get_text()str += ’n’print(name.get_text()) return strdef GPcompany(): GPcompanyname = bs0bj.find_all('dd',{'style':re.compile('color')}) str = ’’ for cpa in GPcompanyname:str += cpa.get_text()str += ’n’print(cpa.get_text()) return strwith open(’0217.tsv’,’w’,newline=’’,encoding=’utf-8’) as f: f.write(GPname()) f.write(GPcompany())f.close()
可能對zip不熟悉,存取下來之后變成一個字一格也找到這篇參考,但怎么嘗試都沒有辦法成功https://segmentfault.com/q/10...
問題解答
回答1:寫csv文件簡單點 你的結構數據要成這樣 [['1. 東森新聞雲','新聞'],['2. 創世黎明(Dawn of world)','遊戲']]
from urllib import urlopenfrom bs4 import BeautifulSoupimport reimport csvhtml = urlopen('http://www.app12345.com/?area=tw&store=Apple%20Store')bs0bj = BeautifulSoup (html)GPnameList = [name.get_text() for name in bs0bj.find_all('dd',{'class':re.compile('ddappname')})]GPcompanyname = [cpa.get_text() for cpa in bs0bj.find_all('dd',{'style':re.compile('color')})]data = ’n’.join([’,’.join(d) for d in zip(GPnameList, GPcompanyname)])with open(’C:/Users/sa/Desktop/0217.csv’,’wb’) as f: f.write(data.encode(’utf-8’))
相關文章:
1. node.js - mongodb查找子對象的名稱為某個值的對象的方法2. html5 - datatables 加載不出來數據。3. 運行python程序時出現“應用程序發生異常”的內存錯誤?4. docker 下面創建的IMAGE 他們的 ID 一樣?這個是怎么回事????5. 利用IPMI遠程安裝centos報錯!6. 前端 - @media query 使用出現的問題?7. javascript - 在 model里定義的 引用表模型時,model為undefined。8. 測試自動化html元素選擇器元素ID或DataAttribute [關閉]9. javascript - QQ第三方登錄的問題10. html5和Flash對抗是什么情況?

網公網安備