python爬蟲基礎教程 urllib庫(一)

2021-09-17 08:37:12 字數 2983 閱讀 7818

#encoding:utf-8

''''''

from urllib import request

res = request.urlopen("")

print(res.readlines())

#urlopen的引數

#def urlopen(url, data=none, timeout=socket._global_default_timeout,

# *, cafile=none, capath=none, cadefault=false, context=none):

將網頁上的檔案儲存到本地

#coding:utf-8

''''''

from urllib import request

res = request.urlretrieve("",'cnblog.html')

#urlretrieve引數

#def urlretrieve(url, filename=none, reporthook=none, data=none):

urlencode函式用於編碼中文和特殊字元

#urlencode函式

# 簡單用法

#from urllib import parse

# data =

# qs = parse.urlencode(data)

# print(qs) #name=%e5%be%b7%e7%91%9e%e5%85%8b&age=100

#實際用例

from urllib import request,parse

url = ""

params =

qs = parse.urlencode(params)

url = url + "?" + qs

res = request.urlopen(url)

print(res.read())

parse_qs函式用於將經過編碼後的url引數進行解碼。

from urllib import parse

qs = "name=%e5%be%b7%e7%91%9e%e5%85%8b&age=100"

print(parse.parse_qs(qs)) #

urlparse和urlsplit都是用來對url的各個組成部分進行分割的,唯一不同的是urlsplit沒有"params"這個屬性.

print('scheme:',result.scheme) #協議

print('netloc:',result.netloc) #網域名稱

print('path:',result.path) #路徑

print('query:',result.query) #查詢引數

#結果#scheme: https

request類的引數

class request:

def __init__(self, url, data=none, headers={},

origin_req_host=none, unverifiable=false,

method=none):

爬去拉鉤網職位資訊

拉勾網的職位資訊是在ajax.json裡面

**:

#利用request類爬去拉勾網職位資訊

''''''

from urllib import request,parse

url = ""

#請求頭

headers =

#post請求需要提交的資料

data =

#post請求的data資料必須是編碼後的位元組型別

req = request.request(url,headers=headers,data=parse.urlencode(data).encode('utf-8'),method='post') #建立乙個請求物件

res = request.urlopen(req)

#獲取的資訊是位元組型別,需要解碼

print(res.read().decode('utf-8'))

#**的使用

from urllib import request

url = ""

#1.使用proxyhandler傳入**構建乙個handler

# handler = request.proxyhandler()

handler = request.proxyhandler()

#2.使用建立的handler構建乙個opener

opener = request.build_opener(handler)

#3.使用opener去傳送乙個請求

res = opener.open(url)

print(res.read())

python爬蟲基礎教程 requests庫(二)

簡單使用 import requests response requests.get text返回的是unicode的字串,可能會出現亂碼情況 print response.text content返回的是位元組,需要解碼 print response.content.decode utf 8 pr...

python基礎教程

乙個簡單的客戶機 import socket s socket.socket host socket.gethostname port 1234 s.bind host,port s.listen 5 while true c,addr s.accept print got connection f...

Python基礎教程

本教程不包括python的安裝,ide採用spyder pytho2.7 1.print pow 2,3 8 print 2 3 8這裡pow函式表示乘方,與 功能相同。2.abs 10 10abs函式用來求乙個數的絕對值。3.round 0.6 1.0 round 0.4 0.0round函式將浮...