當前位置:首頁 » 編程語言 » python網頁分析

python網頁分析

發布時間: 2023-05-04 04:39:35

Ⅰ 如何用 python 分析網站日誌

日誌的記錄

Python有一個logging模塊,可以用來產生日誌。
(1)學習資料
http://blog.sina.com.cn/s/blog_4b5039210100f1wv.html

http://blog.donews.com/limodou/archive/2005/02/16/278699.aspx
http://kenby.iteye.com/blog/1162698
http://blog.csdn.NET/fxjtoday/article/details/6307285
前邊幾篇文章僅僅是其它人的簡單學習經驗,下邊這個鏈接中的內容比較全面。

http://www.red-dove.com/logging/index.html

(2)我需要關注內容
日誌信息輸出級別
logging模塊提供了多種日誌級別,如:NOTSET(0),DEBUG(10),
INFO(20),WARNING(30),WARNING(40),CRITICAL(50)。
設置方法:
logger = getLogger()
logger.serLevel(logging.DEBUG)

日誌數據格式
使用Formatter設置日誌的輸出格式。
設置方法:
logger = getLogger()
handler = loggingFileHandler(XXX)
formatter = logging.Formatter("%(asctime)s %(levelname) %(message)s","%Y-%m-%d,%H:%M:%S")

%(asctime)s表示記錄日誌寫入時間,"%Y-%m-%d,%H:%M:%S「設定了時間的具體寫入格式。
%(levelname)s表示記錄日誌的級別。
%(message)s表示記錄日誌的具體內容。

日誌對象初始化
def initLog():
logger = logging.getLogger()
handler = logging.FileHandler("日誌保存路徑")
formatter = logging.Formatter("%(asctime)s %(levelname) %(message)s","%Y-%m-%d,%H:%M:%S")
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.setLevel

寫日誌
logging.getLogger().info(), logging.getLogger().debug()......

2. 日誌的分析。
(1)我的日誌的內容。(log.txt)
2011-12-12,12:11:31 INFO Client1: 4356175.0 1.32366309133e+12 1.32366309134e+12
2011-12-12,12:11:33 INFO Client1: 4361320.0 1.32366309334e+12 1.32366309336e+12
2011-12-12,12:11:33 INFO Client0: 4361320.0 1.32366309389e+12 1.32366309391e+12
2011-12-12,12:11:39 INFO Client1: 4366364.0 1.32366309934e+12 1.32366309936e+12
2011-12-12,12:11:39 INFO Client0: 4366364.0 1.32366309989e+12 1.32366309991e+12
2011-12-12,12:11:43 INFO Client1: 4371416.0 1.32366310334e+12 1.32366310336e+12
2011-12-12,12:11:43 INFO Client0: 4371416.0 1.32366310389e+12 1.32366310391e+12
2011-12-12,12:11:49 INFO Client1: 4376450.0 1.32366310934e+12 1.32366310936e+12
我需要將上述內容逐行讀出,並將三個時間戳提取出來,然後將其圖形化。

(2) 文件操作以及字元串的分析。
打開文件,讀取出一行日誌。
file = file("日誌路徑",「r」)
while True:
line = file.readline()
if len(len) == 0:
break;
print line
file.close()

從字元串中提取數據。
字元串操作學習資料:

http://reader.you.com/sharelite?itemId=-4646262544179865983&method=viewSharedItemThroughLink&sharedBy=-1137845767117085734
從上面展示出來的日誌內容可見,主要數據都是用空格分隔,所以需要使用字元串的
split函數對字元串進行分割:
paraList = line.split(),該函數默認的分割符是空格,返回值為一個list。
paraList[3], paraList[4], paraList[5]中分別以字元串形式存儲著我需要的時間戳。

使用float(paraList[3])將字元串轉化為浮點數。
(3)將日誌圖形化。
matplotlib是python的一個繪圖庫。我打算用它來將日誌圖形化。
matplotlib學習資料。
matplotlib的下載與安裝:
http://yexin218.iteye.com/blog/645894
http://blog.csdn.Net/sharkw/article/details/1924949

對matplotlib的宏觀介紹:
http://apps.hi..com/share/detail/21928578
對matplotlib具體使用的詳細介紹:

http://blog.sina.com.cn/s/blog_4b5039210100ie6a.html
在matplotlib中設置線條的顏色和形狀:
http://blog.csdn.net/kkxgx/article/details/python

如果想對matplotlib有一個全面的了解,就需要閱讀教程《Matplotlib for Python developers》,教程下載地址:
http://download.csdn.net/detail/nmgfrank/4006691

使用實例
import matplotlib.pyplot as plt

listX = [] #保存X軸數據
listY = [] #保存Y軸數據
listY1 = [] #保存Y軸數據

file = file("../log.txt","r")#打開日誌文件

while True:
line = file.readline()#讀取一行日誌
if len(line) == 0:#如果到達日誌末尾,退出
break
paraList = line.split()
print paraList[2]
print paraList[3]
print paraList[4]
print paraList[5]
if paraList[2] == "Client0:": #在坐標圖中添加兩個點,它們的X軸數值是相同的
listX.append(float(paraList[3]))
listY.append(float(paraList[5]) - float(paraList[3]))
listY1.append(float(paraList[4]) - float(paraList[3]))

file.close()

plt.plot(listX,listY,'bo-',listX,listY1,'ro')#畫圖
plt.title('tile')#設置所繪圖像的標題
plt.xlabel('time in sec')#設置x軸名稱
plt.ylabel('delays in ms'')#設置y軸名稱

plt.show()

Ⅱ 【Python爬蟲】分析網頁真實請求

1、抓取網頁、分析請求
2、解析網頁、尋找數據
3、儲存數據、多頁處理

翻頁有規律:
很多網址在第一頁時並沒有變化,多翻下一頁後規律就出來,比如 豆瓣第一頁 和 豆瓣第三頁

發現start為40,limit=20,所以猜測start=0就是第一頁,每頁顯示20條數據,對於第三頁顯示的參數可以一個個刪除驗證,可以減去不必要的參數, 但是刪除前一定要做好數據的對比

(1) 文本框輸入後產生一個請求,如常見的登錄、注冊頁面
Referer:表示當前請求的來源
Request URL:表示實際請求地址

翻頁後URL不變,該如何尋找請求?
如: http://www.zkh360.com/zkh_catalog/3.html

通過對比可以發現網站是通過pageIndex參數控制翻頁的,?表示連接

接下來用抓包工具分析下 ,從第四頁開始看URL就知道了,但是前面幾面需要查看請求的參數,這里偏多,就切換到【Inspectors--Webforms】選項,看的比較直觀

類似的網站還有 今日頭條 ,有興趣的朋友可以去研究下
(可通過獲取max_behot_time的值而改變as和cp)

Ⅲ 怎麼用python解析網頁,並提取出與標題相關的正文

可以使用正則表達式或者xpath方式,下面這個免費教程是說明怎麼用正則表達式來取得你要的東西的,供參考。
http://www.chuanke.com/v4500746-186400-1033307.html

Ⅳ python 最好的 網頁分析庫 有哪些

1.Beautiful Soup在java里用過,還成,偶爾解析不到。 簡單。

2.python自帶了一個SGML的解析。那個小模塊略略改一改應該很好用的。我以前用它做過畸形校正模塊。效率一般唯謹首。

3.大多數情況下我都是用re庫,正則表達式直接解析,簡單直接易指數用。用好了速度最快。晌旅經常用來搭建服務端的高效處理過濾器。

Ⅳ Python網頁解析庫:用requests-html爬取網頁

Python 中可以進行網頁解析的庫有很多,常見的有 BeautifulSoup 和 lxml 等。在網上玩爬蟲的文章通常都是介紹 BeautifulSoup 這個庫,我平常也是常用這個庫,最近用 Xpath 用得比較多,使用 BeautifulSoup 就不大習慣,很久之前就知道 Reitz 大神出了一個叫 Requests-HTML 的庫,一直沒有興趣看,這回可算歹著機會用一下了。

使用 pip install requests-html 安裝,上手和 Reitz 的其他庫一樣,輕松簡單:

這個庫是在 requests 庫上實現的,r 得到的結果是 Response 對象下面的一個子類,多個一個 html 的屬性。所以 requests 庫的響應對象可以進行什麼操作,這個 r 也都可以。如果需要解析網頁,直接獲取響應對象的 html 屬性:

不得不膜拜 Reitz 大神太會組裝技術了。實際上 HTMLSession 是繼承自 requests.Session 這個核心類,然後將 requests.Session 類里的 requests 方法改寫,返回自己的一個 HTMLResponse 對象,這個類又是繼承自 requests.Response,只是多加了一個 _from_response 的方法來構造實例:

之後在 HTMLResponse 里定義屬性方法 html,就可以通過 html 屬性訪問了,實現也就是組裝 PyQuery 來干。核心的解析類也大多是使用 PyQuery 和 lxml 來做解析,簡化了名稱,挺討巧的。

元素定位可以選擇兩種方式:

方法名非常簡單,符合 Python 優雅的風格,這里不妨對這兩種方式簡單的說明:

定位到元素以後勢必要獲取元素裡面的內容和屬性相關數據,獲取文本:

獲取元素的屬性:

還可以通過模式來匹配對應的內容:

這個功能看起來比較雞肋,可以深入研究優化一下,說不定能在 github 上混個提交。

除了一些基礎操作,這個庫還提供了一些人性化的操作。比如一鍵獲取網頁的所有超鏈接,這對於整站爬蟲應該是個福音,URL 管理比較方便:

內容頁面通常都是分頁的,一次抓取不了太多,這個庫可以獲取分頁信息:

結果如下:

通過迭代器實現了智能發現分頁,這個迭代器裡面會用一個叫 _next 的方法,貼一段源碼感受下:

通過查找 a 標簽裡面是否含有指定的文本來判斷是不是有下一頁,通常我們的下一頁都會通過 下一頁 或者 載入更多 來引導,他就是利用這個標志來進行判斷。默認的以列表形式存在全局: ['next','more','older'] 。我個人認為這種方式非常不靈活,幾乎沒有擴展性。 感興趣的可以往 github 上提交代碼優化。

也許是考慮到了現在 js 的一些非同步載入,這個庫支持 js 運行時,官方說明如下:

使用非常簡單,直接調用以下方法:

第一次使用的時候會下載 Chromium,不過國內你懂的,自己想辦法去下吧,就不要等它自己下載了。render 函數可以使用 js 腳本來操作頁面,滾動操作單獨做了參數。這對於上拉載入等新式頁面是非常友好的。

Ⅵ python爬蟲如何分析一個將要爬取的網站

爬取網頁數據,需要一些工具,比如requests,正則表達式,bs4等,解析網頁首推bs4啊,可以通過標簽和節點抓取扒拍數據。

正巧簡悶,我最近發布了一篇文章就是抓取網頁數據分析的,有完整的抓取步驟,你可以看一下?不好意思給自己打了一下廣春咐羨告?

Ⅶ 「python爬蟲保姆級教學」urllib的使用以及頁面解析

使用urllib來獲取網路首頁的源碼

get請求參數,如果是中文,需要對中文進行編碼,如下面這樣,如果不編碼會報錯。

urlencode應用場景:多個參數的時候。如下

為什麼要學習handler?

為什麼需要代理?因為有的網站是禁止爬蟲的,如果用真實的ip去爬蟲,容易被封掉。

2.解析技術

1.安裝lxml庫

2.導入lxml.etree

3.etree.parse() 解析本地文件

4.etree.HTML() 伺服器響應文件

5.解析獲取DOM元素

1.路徑查詢

2.謂詞查詢

3.屬性查詢

4.模糊查詢

5.內容查詢

6.邏輯運算

示例:

JsonPath只能解析本地文件。

pip安裝:

jsonpath的使用:

示例:

解析上面的json數據

缺點:效率沒有lxml的效率高

優點:介面設計人性化,使用方便

pip install bs4 -i https://pypi.douban.com/simple

from bs4 import BeautifulSoup

1.根據標簽名查找節點

soup.a.attrs

2.函數

find(『a』):只找到第一個a標簽

find(『a』, title=『名字』)

find(『a』, class_=『名字』)

find_all(『a』) :查找到所有的a

find_all([『a』, 『span』]) 返回所有的a和span

find_all(『a』, limit=2) 只找前兩個a

obj.string

obj.get_text()【推薦】

tag.name:獲取標簽名

tag.attrs:將屬性值作為一個字典返回

obj.attrs.get(『title』)【常用】

obj.get(『title』)

obj[『title』]

示例:

使用BeautifulSoup解析上面的html

Ⅷ 網站數據大量分析是python比較好還是mysqlshell好呢

怎麼感覺你沒問道點上呢,你是想問網站大量數據缺跡分析用什麼語言好還是用什麼資料庫好?

1.首先第一個問題,數據量大,多大?你要分析的數據量是100w,1億還是10億,是單表、多表還是異構數據關聯分析,不同的情況採用不同的方案:

mysql在單表1kw-2kw就不行了,如果數據量小於這個量級,還可以用,超過建議使用分布式資料庫,例如在數據分析領域使用的比較多的OLAP型的數據慧鉛庫,譬如MPP型的

2.分析語言,如果僅僅是數據可視化需求的,可以不用自己編寫語言,直接用前端可視化工具如table、quickbi、finebi、powerBI等工具,都可以如果你想做的是比伏碧並較深入的分析,不僅僅是數據展示,還有一些演算法的東西在裡面,python是個不錯的工具,但是在數據量特別大的時候就不行了,比如分析10億量級數據的時候,那個時候建議使用spark,當然底層架構也需要做大改了,總之,不同的數據量級、不同的分析目的採用不同的方案

Ⅸ python爬蟲如何分析一個將要爬取的網站

首先,你去爬取一個網站,

你會清楚這個網站是屬於什麼類型的網站(新聞,論壇,貼吧等等)。

你會清楚你需要哪部分的數據

你需要去想需要的數據你將如何編寫表達式去解析。

你會碰到各種反爬措施,無非就是各種網路各種解決。當爬取成本高於數據成本,你會選擇放棄。

你會利用你所學各種語言去解決你將要碰到的問題,利用各種語言的client組件去請求你想要爬取的URL,獲取到HTML,利用正則,XPATH去解析你想要的數據,然後利用sql存儲各類資料庫。

Ⅹ Python如何分析網站上的動態數據

要分析網站中的動態數據,首先你要寫一個爬蟲程序先拿啟扮到數據,然後結合python中的numpy庫,pandas庫對下載到的數據悄返灶進行分析,如果要生成可視化圖可以使用matplotlib或pyecharts來搞定,希望能世做幫到你,我的專欄中有爬蟲與數據分析的專欄可以參考下。

熱點內容
蘋果6vpn添加配置怎麼弄 發布:2024-11-01 12:36:18 瀏覽:796
職場的幸福密碼是什麼 發布:2024-11-01 12:34:57 瀏覽:748
18經驗起床的伺服器ip 發布:2024-11-01 12:30:15 瀏覽:39
這個鎖屏密碼是什麼 發布:2024-11-01 12:24:51 瀏覽:92
相機存儲卡排名 發布:2024-11-01 12:24:49 瀏覽:958
androidxml格式化 發布:2024-11-01 12:23:14 瀏覽:165
Vb6編譯是錯誤不知道錯誤代碼 發布:2024-11-01 12:16:23 瀏覽:159
區域網電腦訪問伺服器怎麼提速 發布:2024-11-01 12:14:09 瀏覽:322
美創資料庫 發布:2024-11-01 12:05:45 瀏覽:916
你改愛奇藝密碼什麼意思 發布:2024-11-01 12:04:48 瀏覽:409