1. 程式人生 > >Python爬蟲入門 | 6 將爬回來的資料存到本地

Python爬蟲入門 | 6 將爬回來的資料存到本地

1.用Python語句儲存資料

寫檔案時,我們主要用到 with open() 語句:

with open(name,mode,encoding) as file:
  file.write()
  # 注意,with open() 後面的語句有一個縮排

name:包含檔名稱的字串,比如:‘xiaozhu.txt’;
mode:決定了開啟檔案的模式,只讀/寫入/追加等;
encoding:表示我們要寫入資料的編碼,一般為 utf-8 或者 gbk ;
file:表示我們在程式碼中對檔案的命名。


用我們前面爬的小豬的例子來看一下,實際是什麼樣的:

from
lxml import etree import requests import time with open('/Users/mac/Desktop/xzzf.txt','w',encoding='utf-8') as f: for a in range(1,6): url = 'http://cd.xiaozhu.com/search-duanzufang-p{}-0/'.format(a) data = requests.get(url).text s=etree.HTML(data) file=s.xpath('//*[@id="page_list"]/ul/li'
) time.sleep(3) for div in file: title=div.xpath("./div[2]/div/a/span/text()")[0] price=div.xpath("./div[2]/span[1]/i/text()")[0] scrible=div.xpath("./div[2]/div/em/text()")[0].strip() pic=div.xpath("./a/img/@lazy_src")[0] f.write("{},{},{},{}\n"
.format(title,price,scrible,pic))


將寫入的檔名 xzzf.txt,如果沒有將自動建立。

/Users/mac/Desktop/xzzf.txt

在前面加了一個桌面的路徑,它將存在桌面,如果不加路徑,它將存在你當前工作目錄中。

w:只寫的模式,如果沒有檔案將自動建立;
encoding=’utf-8’:指定寫入檔案的編碼為:utf-8,一般指定utf-8即可;

f.write("{}  {}  {}  {}\n".format(title,price,scrible,pic))
#將 title,price,scrible,pic 的值寫入檔案


來看一下存下來的資料是怎樣的:


如果你沒有指定檔案路徑,怎麼找寫在本地的檔案呢?給你兩種方法:

  1. 在 win10 中開啟小娜(cortana),搜尋你的檔名即可。

  1. 推薦軟體“everything”,查詢檔案更方便快捷。

這個軟體非常小,百度很容易找到,但確實是神器用了你會回來感謝我的~


所以還是建議你在寫程式碼的時候,老老實實在檔名前面加上你想存放的路徑。什麼,你連路徑怎麼寫都不知道?好吧,比如我想把檔案存在桌面,那麼怎麼檢視路徑?

隨便找一個文件,比如桌面的文件, 右鍵 >“屬性”,“位置”後面的資訊,就是該文件所在的路徑了。

2.檔案存為CSV格式

當然,你也可以將檔案存為 .csv 格式,在 with open() 語句後更改檔案字尾即可。

from lxml import etree
import requests
import time

with open('/Users/mac/Desktop/xiaozhu.csv','w',encoding='utf-8') as f:
    for a in range(1,6):
        url = 'http://cd.xiaozhu.com/search-duanzufang-p{}-0/'.format(a)
        data = requests.get(url).text

        s=etree.HTML(data)
        file=s.xpath('//*[@id="page_list"]/ul/li')
        time.sleep(3)

        for div in file:
            title=div.xpath("./div[2]/div/a/span/text()")[0]
            price=div.xpath("./div[2]/span[1]/i/text()")[0]
            scrible=div.xpath("./div[2]/div/em/text()")[0].strip()
            pic=div.xpath("./a/img/@lazy_src")[0]

            f.write("{},{},{},{}\n".format(title,price,scrible,pic))

另外,需要注意的是:CSV 每個欄位之間要用逗號隔開,所以這裡把之前的空格改為了逗號。


CSV 檔案怎麼開啟?

一般情況下,用記事本就可以直接開啟,如果你直接用 Excel 開啟,很有肯能會出現亂碼,就像下面這樣:


Excel 開啟 CSV 出現亂碼怎麼辦?

  1. 在記事本中開啟檔案
  2. 另存為 – 選擇編碼為“ANSI”


再來看看之前的豆瓣TOP250圖書寫入檔案:

from lxml import etree
import requests
import time

with open('/Users/mac/Desktop/top250.csv','w',encoding='utf-8') as f:
    for a in range(10):
        url = 'https://book.douban.com/top250?start={}'.format(a*25)
        data = requests.get(url).text

        s=etree.HTML(data)
        file=s.xpath('//*[@id="content"]/div/div[1]/div/table')
        time.sleep(3)

        for div in file:
            title = div.xpath("./tr/td[2]/div[1]/a/@title")[0]
            href = div.xpath("./tr/td[2]/div[1]/a/@href")[0]
            score=div.xpath("./tr/td[2]/div[2]/span[2]/text()")[0]
            num=div.xpath("./tr/td[2]/div[2]/span[3]/text()")[0].strip("(").strip().strip(")").strip()
            scrible=div.xpath("./tr/td[2]/p[2]/span/text()")

            if len(scrible) > 0:
                f.write("{},{},{},{},{}\n".format(title,href,score,num,scrible[0]))
            else:
                f.write("{},{},{},{}\n".format(title,href,score,num))


最後存下來的資料是這樣的:


好了,這節課就到這裡!

白白~

如果你想有專業老師授課、有系統性知識、有實時線上答疑的老師的話,可以加入我們的課程《Python爬蟲(入門+進階)》

相關推薦

Python爬蟲入門 | 6 回來資料本地

1.用Python語句儲存資料 寫檔案時,我們主要用到 with open() 語句: with open(name,mode,encoding) as file: file.write() # 注意,with open()

Python爬蟲入門 | 6 回來的數據本地

文件的 href 存儲 有一個 快捷 pac lse tab play 1.用Python語句存儲數據寫文件時,我們主要用到 with open() 語句:with open(name,mode,encoding) as file: file.write() # 註

Python 爬蟲技巧1 | 取網頁中的相對路徑轉換為絕對路徑

1.背景: 在爬取網頁中的過程中,我對目前爬蟲專案後端指令碼中拼接得到絕對路徑的方法很不滿意,今天很無意瞭解到在python3 的 urllib.parse模組對這個問題有著非常完善的解決策略,真的是上天有眼,感動! 2.urllib.parse模組 This module define

Python爬蟲入門 | 7 分類取豆瓣電影,解決動態載入問題

  比如我們今天的案例,豆瓣電影分類頁面。根本沒有什麼翻頁,需要點選“載入更多”新的電影資訊,前面的黑科技瞬間被秒……   又比如知乎關注的人列表頁面:   我複製了其中兩個人暱稱的 xpath: //*[@id="Popov

Python爬蟲入門——2. 5 取鬥破蒼穹並儲存到本地TXT

        話不多說,上程式碼: #匯入requests庫 import requests #匯入 re 庫 #匯入時間模組 import time import re #定義請求頭,請求頭可以使爬蟲偽裝成瀏覽器 headers = {'User-Agent': '

一個月入門Python爬蟲學習,輕鬆取大規模資料

利用爬蟲我們可以獲取大量的價值資料,從而獲得感性認識中不能得到的資訊,這篇文章給大家帶來了一個月入門Python學習,爬蟲輕鬆爬取大規模資料,感興趣的朋友一起看看吧 資料獲取方式:Python技術學習QQ群832339352 新增即可免費獲取! Python爬蟲為

Python爬蟲入門教程 3-100 美空網資料

簡介 從今天開始,我們嘗試用2篇部落格的內容量,搞定一個網站叫做“美空網”網址為:http://www.moko.cc/, 這個網站我分析了一下,我們要爬取的圖片在 下面這個網址 http://www.moko.cc/post/1302075.html 然後在去分析一下,我需要找到一個圖片列表

Python爬蟲入門教程 15-100 石家莊政民互動資料

寫在前面 今天,咱抓取一個網站,這個網站呢,涉及的內容就是 網友留言和回覆,特別簡單,但是網站是gov的。網址為 http://www.sjz.gov.cn/col/1490066682000/index.html 首先宣告,為了學習,絕無惡意抓取資訊,不管

Python爬蟲入門教程 6-100 蜂鳥網圖片取之一

enter 第一步 {} status .... 一個 網站分析 except rep 1. 簡介 國慶假日結束了,新的工作又開始了,今天我們繼續爬取一個網站,這個網站為 http://image.fengniao.com/ ,蜂鳥一個攝影大牛聚集的地方,本教程請用來學習,

Python爬蟲入門取某網頁財經部分股票資料

1:反思部分 之前上學期也是看過一點點爬蟲的東西,然後時間太久了也基本哪裡學的又還給哪裡了。然後這兩週的時間被班主任的要求下開始一點一點接觸爬蟲,開始的時候覺的很害怕。可能是因為我這個人的性格,對於未接觸過的事物總有一些莫名的恐懼感,而且之前做東西總習慣了旁邊

Python爬蟲入門——3.6 Selenium 取淘寶資訊

上一節我們介紹了Selenium工具的使用,本節我們就利用Selenium跟Chrome瀏覽器結合來爬取淘寶相關男士羽絨服商品的資訊,當然你可以用相同的方法來爬取淘寶其他商品的資訊。我們要爬取羽絨服的價格、圖片連線、賣家、賣家地址、收貨人數等資訊,並將其儲存在csv中 fr

Python爬蟲學習6:scrapy入門(一)取汽車評論並儲存到csv檔案

一、scrapy 安裝:可直接使用Anaconda Navigator安裝, 也可使用pip install scrapy安裝二、建立scrapy 爬蟲專案:語句格式為 scrapy startproject project_name生成的爬蟲專案目錄如下,其中spiders

Python爬蟲之利用BeautifulSoup取豆瓣小說(三)——小說信息寫入文件

設置 one 行為 blog 應該 += html uil rate 1 #-*-coding:utf-8-*- 2 import urllib2 3 from bs4 import BeautifulSoup 4 5 class dbxs: 6 7

6.Python爬蟲入門六之Cookie的使用

expires cookielib spa result hat 即使 card rec 其他 大家好哈,上一節我們研究了一下爬蟲的異常處理問題,那麽接下來我們一起來看一下Cookie的使用。 為什麽要使用Cookie呢? Cookie,指某些網站為了辨別用戶身份、進行se

Python爬蟲入門 | 取豆瓣電影信息

Python 編程語言 web開發這是一個適用於小白的Python爬蟲免費教學課程,只有7節,讓零基礎的你初步了解爬蟲,跟著課程內容能自己爬取資源。看著文章,打開電腦動手實踐,平均45分鐘就能學完一節,如果你願意,今天內你就可以邁入爬蟲的大門啦~好啦,正式開始我們的第二節課《爬取豆瓣電影信息》吧!啦啦哩啦啦,

Python爬蟲入門 | 4 取豆瓣TOP250圖書信息

Python 編程語言 Python爬蟲先來看看頁面長啥樣的:https://book.douban.com/top250 我們將要爬取哪些信息:書名、鏈接、評分、一句話評價……1. 爬取單個信息我們先來嘗試爬取書名,利用之前的套路,還是先復制書名的xpath:得到第一本書《追風箏的人》的書名xpath如下:

Python爬蟲入門 | 5 取小豬短租租房信息

圖片 交流 ffffff 信息 jpg http 而已 基本 mat 小豬短租是一個租房網站,上面有很多優質的民宿出租信息,下面我們以成都地區的租房信息為例,來嘗試爬取這些數據。 小豬短租(成都)頁面:http://cd.xiaozhu.com/1.爬取租房標題 按照慣例,

Python 爬蟲入門(一)——取糗百

upa ext win comment 地址 odi 批量 爬蟲程序 article 爬取糗百內容 GitHub 代碼地址https://github.com/injetlee/Python/blob/master/qiubai_crawer.py 微信公眾號:【智能制造專

Python 爬蟲入門取妹子圖

Python 爬蟲入門之爬取妹子圖 來源:李英傑  連結: https://segmentfault.com/a/1190000015798452   聽說你寫程式碼沒動力?本文就給你動力,爬取妹子圖。如果這也沒動力那就沒救了。   GitHub 地址:&

Python爬蟲入門實戰系列(一)--取網路小說並存放至txt檔案

執行平臺: Windows  Python版本: Python3.x  一、庫檔案