作者brightsu (渣)
看板Python
標題Re: [問題] python 將爬出來的資料匯出至檔案
時間Tue Apr 12 12:15:36 2016
感謝大家的教學,後來小弟修正了一下改成如下
http://pastie.org/10794298
但是發現匯出來的CVS的分隔符號變成每一個字元出現一次
後來我試著單純用
ls = (item.select('.pName')[0].text)
匯出來卻變成一個字元換一行
請問我的參數是不是哪邊下錯了
非常感謝各位前輩的賜教
※ 引述《brightsu (渣)》之銘言:
: 大家好,小弟本身沒有什麼程式背景
: 最近開始接觸到了 Python 但是遇到了一些問題想請教一下大家
: 小弟按照著教學把網路上要得資訊爬下來
: print 也有資料出來
: 但是希望可以把print 出來的資料輸出成 txt or csv
: 但是一直無法成功,想請教一下前輩是哪邊的邏輯有問題
: import requests
: from bs4 import BeautifulSoup
: res = requests.get("http://www.yodobashi.com/%E3%82%B9%E3%83%81%E3%83%BC%E3%83%A0%E3%82%AA%E3%83%BC%E3%83%96%E3%83%B3%E3%83%AC%E3%83%B3%E3%82%B8/ct/6567_500000000000000211/?count=48&discontinued=false&disptyp=01&oword=Hitachi&page=1&searchtarget=prodname&sorttyp=COINCIDENCE_RANKING&ginput=Hitachi")
: soup = BeautifulSoup(res.text)
: for item in soup.select('.pListBlock'):
: f = open('A.txt', 'w', encoding = 'UTF-8')
: f.write (item.select('.pName')[0].text,item.select('.red')[0].text)
: f.close ()
: requests.get的縮址 http://goo.gl/PS3c4K
: 感謝大家 @@
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 202.39.219.4
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1460434539.A.074.html
推 Sunal: w.writerow (ls) 04/12 12:51
→ Sunal: 你多一個s 04/12 12:51
阿...真的,抱歉小弟還是個初學著沒注意到這一點
感謝前輩的提醒 :)
推 Sunal: w = csv.writer(f, delimiter=';') 可以移到for loop外 04/12 13:10
好的,小弟做個修正,感謝
另外請教一下 writerows 跟 writerow 有什麼差異性??
因為網路上的教學給的是 writerows 可是使用之後就如我敘述的那樣子
不知道這兩個之間的差異性在哪??
※ 編輯: brightsu (202.39.219.4), 04/12/2016 13:36:03
推 Sunal: 你如果要存成CSV的ls是長這樣[[A,B,C],[A,B,C]]就可以在for 04/12 13:49
→ Sunal: loop外用w.writerows (ls) 一次寫入 04/12 13:49
推 Sunal: 因為字串也可迭代 所以你的ls=('ABC','ABC') 寫入就會變成 04/12 13:56
→ Sunal: 每個字元分隔 以上...小弟也是新手 有錯請指證 04/12 13:57
→ uranusjr: 上面說得沒錯 04/12 14:06
感謝您的解說 :)
※ 編輯: brightsu (125.227.175.246), 04/12/2016 15:15:35