#爬取網頁
import urllib.request
#向指定的url位址發起請求,並返回伺服器響應的資料(檔案物件)
response = urllib.request.urlopen(
'')#讀取檔案的全部內容,會把讀取到的資料賦值給乙個字串變數
data = response.read(
)#.decode('utf-8')
print
(data)
print
(type
(data)
)#讀取一行
data1 = response.readline(
)#讀取檔案的全部內容,會把讀取到的資料賦值給乙個列表變數
data2 = response.readlines(
)print
(data2)
print
(type
(data2)
)print
(len
(data2)
)print
(type
(data2[
100]
.decode(
'utf-8'))
)#編碼以後才是字串
# #將爬取到的網頁寫入到檔案
with
open
(r'e:\程式\mlp\爬蟲\file\file.html'
,'wb'
)as f:
f.write(data)
#response屬性:
print
(response.info())
#但會當前環境的有關資訊
print
(response.getcode())
#返回狀態碼,200表示成功,304說明有快取
if response.getcode()==
200or response.getcode()==
304:
#處理pass
print
(response.geturl())
#返回當前正在爬取的url位址
url = r''
print
(urllib.response.unquote(url)
)#解碼
print
(urllib.response.quote(url)
)#編碼
#法二:將爬取到的網頁直接寫入檔案,urlretrieve在執行過程中,會產生一些快取
urllib.request.urlretrieve(
'',filename=r'e:\程式\mlp\爬蟲\file\file2.html'
)#清除快取
urllib.request.urlcleanup(
)#設定超時,若網頁長時間為響應,系統判斷超時,無法爬去
for i in
range(1
,100):
try:
responce = urllib.request.urlopen(
'',timeout=
0.5)
print
(len
(responce.read(
).decode(
'utf-8'))
)except
:print
('請求超時,繼續下乙個爬取'
)
get:通過url**傳遞資訊,可以直接在url**上新增要傳遞的資訊
post:可以向伺服器提交資料,是一種比較流行的比較安全的資料傳遞方式
put:請求伺服器儲存乙個資源,通常要指定儲存的位置
delete:請求伺服器刪除乙個資源
head:請求獲取對應的http報頭資訊
options:可以獲取當前utl所支援的請求型別
#get請求:特點:把資料拼接到請求路徑的後面傳遞給伺服器,優點是速度快,缺點是承載的資料量小,不安全
import urllib.request
url =
'這裡寫伺服器位址'
response = urllib.request.urlopen(url)
data = response.read(
).decod(
'utf-8'
)print
(data)
print
(type
(data)
)
概念:一種儲存資料的格式
作用:可以儲存本地的json檔案,也可以將json串進行傳輸,通常將json稱為輕量級的傳輸方式
json檔案組成:
{}:代表物件(字典)
:代表牌列表
:代表鍵值對
,分隔兩個部分
#將json格式的字串轉為python資料型別的物件
import json
jsonstr =
''#xml檔案的內容
jsondata = json.loads(jsonstr)
print
(jsondata)
#print
(type
(jsondata))#
#將python資料型別的物件轉為json格式的字串
jsondata2 =
jsonstr2 = json.dumps(jsondata2)
print
(jsonstr2)
#print
(type
(jsonstr2))#
#讀取本地的json檔案:
path1 = r''
with
open
(path1,
'rb'
)as f:
data = json.load(
)#不加s就是讀取本地
print
(data)
print
(type
(data)
)#此時讀的是字典型別
#寫本地的json檔案:
path2 = r''
jsondata3 =
#現在是字典格式
with
open
(path2,
'w')
as f:
json.dump(jsondata3,f)
#寫進去就是json格式
post請求:
特點:把引數進行打包,單獨傳輸
優點:數量大,安全(當對伺服器資料進行修改時建議使用post)
缺點:速度慢
import urllib.request
import urllib.parse
ur1 =
'這裡寫伺服器位址'
#將要傳送的資料合成乙個字典,字典的鍵值去**裡找,一般為input標籤的name屬性的值
data =
#將要傳送的資料進行打包,記住編碼
postdata = urllib.parse.urlencode(data)
.encode(
'utf-8'
)#請求體
req = urllib.request.request(ur1,data=postdata)
#請求req.add_header(
'........'
)response = urllib.request.urlopen(req)
print
(response.read(
).decode(
'utf-8'
))
python 0基礎入門課筆記
參加了一次入門的體驗課,對我來說內容是比較淺的,但是課程設計得確實用心,值得為此付費 程式語言是為和機器溝通,所以,先要讓機器能與你對話,python裡讓機器說話的語句是 print 從名字不難理解,機器說話其實就是把內容列印到螢幕上的過程,至於說啥呢,就是括號裡的內容 那如何表達說的內容呢?高考給...
python0基礎學習之常用模組
模組 module 它特指就是 py檔案如果預設沒有在包中 import x import random import uuid,sys import os.path as 別名 from 包路徑 import 模組名稱 from 包路徑.模組名稱 import 方法 類 變數 from funct...
Python 0基礎 第二章 python語言基礎
我的課本學習筆記 1.拼接字串,前後需要都轉成字串的格式,則不需要 money all 56.75 72.91 88.50 26.37 68.51 累加總計金額 money all str str money all 轉換為字串 print 商品總金額為 money all str print 商品...