看板 Python 關於我們 聯絡資訊
感謝大家的教學,後來小弟修正了一下改成如下 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