-
open函數保存
使用with open()新建對象
寫入數據(這里使用的是爬取豆瓣讀書中一本書的豆瓣短評作為例子)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import
requests
from
lxml
import
etree
#發送Request請求
url
=
'https://book.douban.com/subject/1054917/comments/'
head
=
{
'User-Agent'
:
'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36'
}
#解析HTML
r
=
requests.get(url, headers
=
head)
s
=
etree.HTML(r.text)
comments
=
s.xpath(
'//div[@class="comment"]/p/text()'
)
#print(str(comments))#在寫代碼的時候可以將讀取的內容打印一下
#保存數據open函數
with
open
(
'D:/PythonWorkSpace/TestData/pinglun.txt'
,
'w'
,encoding
=
'utf-8'
) as f:
#使用with open()新建對象f
for
i
in
comments:
print
(i)
f.write(i
+
'\n'
)
#寫入數據,文件保存在上面指定的目錄,加\n為了換行更方便閱讀
|
這里指的注意的是: open函數的打開模式
參數 | 用法 |
---|---|
r | read只讀。若不存在文件會報錯。 |
w | write只寫。若不存在文件會自動新建。 |
a | apend附加到文件末尾。 |
rb, wb, ab | 操作二進制 |
r+ | 讀寫模式打開 |
-
pandas包保存
說道Pandas不得不說一下與之相關的兩個數據分析工具包(注意:pandas 、numpy和matplotlib都需要事先安裝,詳細安裝可見之前的博文關於pip方式安裝包)
- numpy: (Numerical Python的簡稱),是高性能科學計算和數據分析的基礎包
- pandas:基於Numpy創建的Python包,含有使數據分析工作變得更加簡單的高級數據結構和操作工具
- matplotlib:是一個用於創建出版質量圖表的繪圖包(主要是2D方面)
123import
pandas as pd
#導入pandas
import
numpy as np
#導入numpy
import
matplotlib.pypolt as plt
#導入matplotlib
接下來就演示pandas保存數據到CSV和Excel
1
2
3
4
5
6
7
8
9
10
|
#導入包import pandas as pd
import
numpy as np
df
=
pd.DataFrame(np.random.randn(
10
,
4
))
#創建隨機值
#print(df.head(2))#查看數據框的頭部數據,默認不寫為前5行,小於5行時全部顯示;也可以自定義查看幾行
print
(df.tail())
##查看數據框的尾部數據,默認不寫為倒數5行,小於5行時全部顯示;也可以自定義查看倒數幾行
df.to_csv(
'D:/PythonWorkSpace/TestData/PandasNumpy.csv'
)
#存儲到CSV中
#df.to_excel('D:/PythonWorkSpace/TestData/PandasNumpy.xlsx')#存儲到Excel中(需要提前導入庫 pip install openpyxl)
|
實例中保存豆瓣讀書的短評代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import
requests
from
lxml
import
etree
#發送Request請求
url
=
'https://book.douban.com/subject/1054917/comments/'
head
=
{
'User-Agent'
:
'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36'
}
#解析HTML
r
=
requests.get(url, headers
=
head)
s
=
etree.HTML(r.text)
comments
=
s.xpath(
'//div[@class="comment"]/p/text()'
)
#print(str(comments))#在寫代碼的時候可以將讀取的內容打印一下
'''
#保存數據open函數
with open('D:/PythonWorkSpace/TestData/pinglun.txt','w',encoding='utf-8') as f:#使用with open()新建對象f
for i in comments:
print(i)
f.write(i+'\n')#寫入數據,文件保存在上面指定的目錄,加\n為了換行更方便閱讀
'''
#保存數據pandas函數 到CSV 和Excel
import
pandas as pd
df
=
pd.DataFrame(comments)
#print(df.head())#head()默認為前5行
df.to_csv(
'D:/PythonWorkSpace/TestData/PandasNumpyCSV.csv'
)
#df.to_excel('D:/PythonWorkSpace/TestData/PandasNumpyEx.xlsx')
|