關於Python做爬蟲的一點基礎

2021-07-02 12:27:20 字數 1872 閱讀 5725

報名了學院的p2p專案,所以只能被迫去學python了。。。在此記錄一下我的學習流程,免得自己日後忘記了

python中至少應當有一行特殊形式的注釋,組織行:

#!/user/bin/python
雙引號中字串與單引號中的字串使用完全相同

同一層次的語句必須有相同的縮排量,每一組語句成為乙個塊

raw_input() 取得使用者猜測的數字
if語句在結尾處包含乙個冒號,告訴python下面跟著乙個語句塊(if-elif-else)

while迴圈中的使用乙個else語句

函式通過def關鍵字進行定義

預設參考值,關鍵引數

列表,元組

瀏覽器通過http協議請求乙個伺服器,伺服器接著響應,返回乙個html給瀏覽器,接著通過瀏覽器將html翻譯成我們看到的網頁,這就是乙個很精簡的方式了,具體情況要負載的很多很多,而爬蟲正是在伺服器返回html**這個時候開始抓取檔案的

uri 表示請求伺服器的路徑,定義資源

url 表示如何訪問這個資源

urllib

向指定的url發出請求獲取資料,返回乙個類檔案(其實是字串)物件,可選引數data以及請求頭header,不帶data時為get請求,帶data時為post請求

response=urllib2.urlopen("url")

html=response.read()

上述**分開解析時的流程為

req=urllib2.requset("url")//建立request物件,指明要訪問的url

response=urllib2.urlopen(req)

html=repose.read()

post請求 post請求需要用標準的方式encoding,這個是在urllib中完成

import urllib

import urllib2

url=" "

values=

data=urllib.urlencode(values)

req=urllib2.request(url,data)

user-agent 瀏覽器區別自身的方式是user-agent頭

url=''

'get':url,

'host':'news.163.com',

'referer':''}

req=urllib2.request(url,data,headers)
response的方法 geturl()返回的是獲取得到的真實的url

info()返回物件的字典物件

re模組,提供對正規表示式的支援

import re

pattern=re.compile(r'hello')//將正規表示式字串形式編譯為pattern例項

match=pattern.match('hello world')//使用pattern的match例項處理文字獲得匹配的結果
match.group()//使用match例項獲得分組資訊
位元組串str通過decode變為unicode

字串unicode通過encode變為str

python裡預設的是ascii碼

1、主要審查元素,分析鏈結(比如各分類的網頁鏈結組成)

2、爬取各分類的主要頁面

3、歸檔

後記,如果有興趣做這一塊的話,還可以去學習一些現成的框架,比如beautifulsoap 或者scrapy

Python爬蟲的一點實踐

爬網頁爬的是資料,如果是簡單的html網頁,可以通過chrome分析請求連線然後通過scrapy獲取想要的資料,主要是xpath和正規表示式的使用 如果是對網頁的無目的搜尋式爬取,可以獲取request返回的內容中所有超連結然後不停地爬下去 如果是對乙個網頁的指定資料的爬取,直接可以定位到頁面元素然...

爬蟲的一點經驗

1.寫乙個網頁爬蟲的時候遇到了乙個div巢狀問題,即乙個大的div裡面有很多小的div,如 xx x 這樣乙個型別,如果爬取內層的div是很簡單的,正規表示式十分好寫 div 但是如果要爬取外面的div該怎麼辦呢?當時我的做法是繼續尋找,找出該段內容後面的具有識別該段內容能力的內容。如上式,在正規表...

關於python的一點學習筆記

整數運算最精確,浮點數可能會有四捨五入的誤差 python中,r 中間的字串不進行轉義 print line1 line2 line3 用此格式可以省去 n and,or,not 分別標識 與,或,否 if 後 一定要記得加冒號!python中沒有真正意義上的常量,通常用大寫字母來表示乙個常量 為除...