爬蟲補充學習,帶Python學習3

2021-08-27 18:47:52 字數 4088 閱讀 9257

資料分析

1.提出正確的問題

2.通過資料論證尋找答案

3.解讀資料、回答問題

1.jupyter notebook

jupyter notebook(此前被稱為 ipython notebook)是乙個互動式筆記本,支援執行 40 多種程式語言。

jupyter notebook 的本質是乙個 web 應用程式,便於建立和共享文學化程式文件,支援實時**,數學方程,視覺化和 markdown。 用途包括:資料清理和轉換,數值模擬,統計建模,機器學習等等

pip3 install jupyter
2.charts

pip3 install charts
import charts 報錯的話

檢視charts的安裝路徑

import sys

print(sys.path)

找到類似下面的路徑

『/library/frameworks/python.framework/versions/3.5/lib/python3.5/site-packages』 然後進入目錄下的chart目錄,拷貝下圖這些檔案替換

3.生成charts需要的資料格式

如:series = [,]

//1.統計出有多少個地區

area_list =

for i in item_info.find():

area_index = list(set(area_list)) //將list陣列先轉換為set,再放入乙個新的list

print(area_index)

/**['西城', '燕郊', '密雲', '石景山', '海淀', '朝陽', '宣武', '平谷', '懷柔', '昌平', '附近', '大興', '順義', '延慶', '不明', '豐台', '北京周邊', '房山', '東城', '崇文', '通州', '門頭溝']

**///2.遍歷所有地區area_index,並統計area_list中每個地區的數量

post_times =

for index in area_index:

print(post_times)

/**[3376, 541, 386, 1958, 11768, 19224, 1803, 277, 381, 4963, 3, 4856, 1913, 164, 15505, 7991, 520, 1490, 3155, 1188, 4924, 464]

**///3.定義乙個函式來使用yield(迭代器)生成資料集

defdata_gen

(types):

length = 0

if length <= len(area_index):

for area,times in zip(area_index,post_times):

data =

yield data

length += 1

for i in data_gen('column'):

print(i)

/****/

//4.使用列表解析式生成charts餅圖需要的資料格式

series = [data for data in data_gen('column')]

charts.plot(series, show='inline', options=dict(title=dict(text='七日內北京城區二手物品發帖量')))

3.mongodb分片 slice

控制 匹配陣列返回資料長度

db.c.find({},)  取前三個 type

(-3 後三個);

db.c.find({},) 也可以是擷取(4-13);

for i in item_info.find(},,'_id':0,'price':0,'title':0}).limit(300):

print(i)

area使用了分片,取第乙個值

4.python時間累加

def

get_all_dates

(date1,date2):

##將開始、結束時間字串轉換為時間格式

the_date = date(int(date1.split('.')[0]),int(date1.split('.')[1]),int(date1.split('.')[2]))

end_date = date(int(date2.split('.')[0]),int(date2.split('.')[1]),int(date2.split('.')[2]))

days = timedelta(days=1)

## 1 day, 0:00:00 ##

while the_date <= end_date:

yield (the_date.strftime('%y.%m.%d')) ##生成器生成需要的時間格式

the_date = the_date + days ##迴圈的時間加一天

5.print()

print('#'

*20) #輸出20個#

6.生成折線圖資料

def

get_data_within

(date1,date2,areas):

for area in areas:

area_day_posts =

for date in get_all_dates(date1,date2): #呼叫時間累加函式

a = list(item_info.find())

each_day_post = len(a)

data =

yield data

for i in get_data_within('2015.12.24','2016.01.05',['朝陽','海淀','通州']):

print(i)

## 輸出的結果series

####

##

7.生成折線圖

#固定格式

options = ,

'title' : ,

'subtitle': ,

'xaxis' : ,

'yaxis' : }

}series = [i for i in get_data_within('2015.12.24','2016.01.05',['朝陽','海淀','通州'])]

8.aggregate聚合

pipeline = [

//$and並列條件匹配

,]}},

//將集合中的文件分組,以price欄位為組,統計結果放到counts欄位,'$sum'

:1 表示每次加1

}},//按照counts排序,從高到低排序

},//用來限制mongodb聚合管道返回的文件數

]

pipeline2 = [

,]}},

//將集合中的文件分組,以cates欄位切片,取陣列中的第三個數,統計結果放到counts欄位,'$sum'

:1 表示每次加1

,'counts'

:}},}]

pipeline = [

//pub_date在'2015.12.25','2015.12.27'兩個時間內的

},]}},,

,'counts'

:}},},]

Python爬蟲學習

最近由於 需要,用python寫了爬蟲爬取資料。在這個過程中,認識到學習一門語言最好的辦法是動手,別無技巧。在動手程式設計的過程中,遇到了很多意想不到的問題,當然也學習了很多書本上不會講述的知識,感覺這才是真正的學習知識。在這個過程中,遇到的乙個問題讓我花費了很久時間,留下了很深的印象。擔心會隨著時...

Python學習 爬蟲

在搜尋python知識的時候一直看到爬蟲相關知識,感覺挺好玩的,打算簡單了解一下。1 找到伺服器主機,向伺服器發出乙個請求,伺服器經過解析之後,傳送給使用者的瀏覽器 html js css 等檔案,瀏覽器解析出來,使用者便可以看到形形色色的了。因此,使用者看到的網頁實質是由 html 構成的,爬蟲爬...

python爬蟲學習

例如列印當前時間 from datetime import datetime print datetime.now 或者import datetime print datetime.datetime.now html結構 html head body html head a useful page ...