爬蟲總結(一)

2021-08-18 13:07:31 字數 3461 閱讀 8053

requests模組

response = urllib2.urlopen("")

#讀取html原始碼使用read方法

html = response.read()

#1.構造request物件(get請求)

url = ""

#這種request是get請求,因為沒有給data傳值,如果需要使用get方式傳參,可以把引數經過urllib.urlencode之後拼接到url上

request = urllib2.request(url , headers = headers)

response = urllib2.urlopen(request)

#2.構造request物件(post請求)

#假設這是需要post的資料

formdata =

#進行url編碼

data = urllib.urlencode(formdata)

request = urllib2.request(url , data = data , headers = headers)

#傳送post請求

response = urllib2.urlopen(request)

#注意:urllib2.urlopen()其實就是使用urllib2給我們建立的預設的opener物件,這個物件的功能相對較弱,如果需要增加功能,需要我們自己構建

#1.使用具有**功能的handler

#2.根據handler構建opener

#3.如果這麼寫,只有使用opener.open()方法傳送請求才使用了自定義的**

response = opener.open(request)

#4.如果這麼寫,就是將opener應用到全域性,之後所有的,不管是opener.open()還是urlopen()傳送請求,都將使用自定義**

#urllib2.install_opener(opener)

#response = urllib2.urlopen(request)

#1.構建乙個cookiejar物件來儲存cookie

cookiejar = cookielib.cookiejar()

#2.構建handler

#3.構建opener

opener = urllib2.build_opener(handler)

#4.以get方法訪問頁面,訪問之後會自動儲存cookie到cookiejar中

opener.open("")

#5.可以按標準格式將儲存的cookie列印出來

cookiestr = ""

for item in cookiejar:

cookiestr = cookiestr + item.name + "=" + item.value + ";"

##捨棄最後一位的分號

print cookiestr[:-1]

1.requests繼承了urllib2的所有特性。requests支援連線保持和連線池,支援使用cookie保持會話,支援檔案上傳,支援自動確定響應內容的編碼,支援國際化的url和post資料自動編碼

2.安裝方式,利用pip安裝,pip install requests

1.最基本的請求可以直接使用get方法

response = requests.get("")
2.新增headers和查詢引數

如果想要新增headers,可以傳入headers引數來增加請求頭中的headers資訊。如果要將引數放在url中傳遞,可以利用params引數

#需要提交的引數

kw =

#params接受乙個字典或者字串的查詢引數,字典型別自動轉為url編碼,不需要urlencode()

response = requests.get("s?" , params = kw , headers = headers)

#檢視響應內容,response.text返回的是unicode格式的資料

print response.text

#檢視響應內容,response.content返回的位元組流資料

print response.content

3.post請求

formdata = 

url = ""

#這裡使用的是data而不是params,因為這是post請求,而且不需要我們手動進行引數url編碼

response = request.post(url , data = formdata , headers = headers)

print response.text

#如果是json檔案可以直接顯示

print response.json()

4.cookie和session

cookies

如果乙個響應中包含了cookie,那麼我們可以利用cookies引數拿到:

response = requests.get("")

#返回cookiejar物件

cookiejar = response.cookies

#將cookiejar轉換為字典

cookiedict = requests.utils.dict_from_cookiejar(cookiejar)

print cookiejar

print cookiedict

session

在requests裡,session物件是乙個非常常用的物件,這個物件代表一次使用者會話:從客戶端瀏覽器連線伺服器開始,到客戶端瀏覽器斷開。會話能讓我們在跨請求時保持某些引數,比如:在同乙個session例項發出的所有請求之間保持cookie

#實現登陸人人網

#1.建立session物件,可以儲存cookie值

sess = requests.session()

#2.處理headers

# 3. 需要登入的使用者名稱和密碼

data =

#4.傳送帶有使用者名稱和密碼的請求,並獲取登陸後cookie值,儲存在sess裡

sess.post("" , data = data)

#5.訪問需要登陸許可權的頁面

response = sess.get("")

#6.列印響應內容

print response.text

Python爬蟲總結(一)入門

很多做資料分析的同學會抱怨沒有實際資料,感覺巧婦難為無公尺之炊,而火車頭採集器一類的軟體很難完成一些定製性很強的資料採集任務,這時候就需要自己編寫爬蟲來採集資料了。python是目前做爬蟲比較流行的工具。爬蟲一般通過傳送http https請求,從伺服器獲取資料,進一步解析獲取的資料,最後得到有用的...

簡單爬蟲總結

url url主要有三部分組成 1 協議,常見的協議有http,https,ftp,file 訪問本地資料夾 ed2k 電驢的專用鏈結 等等。2 存放資源的伺服器的網域名稱系統 dns 主機名或者ip位址 有時候包含埠號,各種傳輸協議都有預設的埠號 3 主機資源的具體位址,如目錄和檔名等 注意 第一...

爬蟲總結3

div id xx last a 2 href id是xx的div的父一級標籤下的所有標籤中最後乙個標籤下的第二個a標籤的名為href屬性的值 html a text text html下文字內容是 的所有a標籤下的當前標籤 就還是那個a標籤 的文字內容from lxml import etree ...