python爬蟲 表情包爬取

2021-08-21 04:05:52 字數 3796 閱讀 6795

問題:

1.路徑問題以及獲取路徑問題

**注:argv[0]只是得到的是當前指令碼的絕對位置;而os模組中的幾種獲得路徑的方法,得到的是當前的工作目錄,如:open(『1.txt』,』r』),則會在當前工作目錄查詢該檔案。即大部分的檔案操作都是相對於當前工作路徑。

若要改變當前工作路徑,可以用:os.chdir(path) 。如os.chdir(e:\program files),則大部分的檔案操作就會是相對於e:\dir1。fobj = open(『hello.txt』),實際會開啟e:\program files\hello.txt檔案。**

來自:

#coding:utf-8

import os

path = 'c:\python27\lib\site-packages\mylibrary'

print os.path.abspath(path) #返回絕對路徑

print os.path.basename(path) #返回檔名

'os.path.commonprefix(list) #返回list(多個路徑)中,所有path共有的最長的路徑。'

print os.path.dirname(path) #返回檔案路徑

print os.path.exists(path) #路徑存在則返回true,路徑損壞返回false

print os.path.lexists #路徑存在則返回true,路徑損壞也返回true

print os.path.expanduser(path) #把path中包含的"~"和"~user"轉換成使用者目錄

print os.path.expandvars(path) #根據環境變數的值替換path中包含的」$name」和」$」

print os.path.getatime(path) #返回最後一次進入此path的時間。

print os.path.getmtime(path) #返回在此path下最後一次修改的時間。

print os.path.getctime(path) #返回path的大小

print os.path.getsize(path) #返回檔案大小,如果檔案不存在就返回錯誤

print os.path.isabs(path) #判斷是否為絕對路徑

print os.path.isfile(path) #判斷路徑是否為檔案

print os.path.isdir(path) #判斷路徑是否為目錄

print os.path.islink(path) #判斷路徑是否為鏈結

print os.path.ismount(path) #判斷路徑是否為掛載點()

'os.path.join(path1[, path2[, ...]]) #把目錄和檔名合成乙個路徑'

print os.path.normcase(path) #轉換path的大小寫和斜槓

print os.path.normpath(path) #規範path字串形式

print os.path.realpath(path) #返回path的真實路徑

'os.path.relpath(path[, start]) #從start開始計算相對路徑'

'os.path.samefile(path1, path2) #判斷目錄或檔案是否相同'

'os.path.sameopenfile(fp1, fp2) #判斷fp1和fp2是否指向同一檔案'

'os.path.samestat(stat1, stat2) #判斷stat tuple stat1和stat2是否指向同乙個檔案'

print os.path.split(path) #把路徑分割成dirname和basename,返回乙個元組

print os.path.splitdrive(path) #一般用在windows下,返回驅動器名和路徑組成的元組

print os.path.splitext(path) #分割路徑,返回路徑名和副檔名的元組

print os.path.splitunc(path) #把路徑分割為載入點與檔案

'os.path.walk(path, visit, arg) #遍歷path,進入每個目錄都呼叫visit函式,visit函式必須有'

#3個引數(arg, dirname, names),dirname表示當前目錄的目錄名,names代表當前目錄下的所有

#檔名,args則為walk的第三個引數

print os.path.supports_unicode_filenames #設定是否支援unicode路徑名

(一)

data.json不存在,便建立並寫入json格式的預設引數

import os

import json

name = 'data.json'

ifnot(os.path.exists(name) and os.path.isfile(name)):

with

open(name, 'w') as f:

f.write('["如果data.json不存在,便建立並寫入json格式的預設引數。"]')

with

open(name, 'r') as f:

cfg = json.load(f)#讀取data.json

print(cfg)

windows系統的位址列能夠識別單反斜槓」\」,而不能識別雙反斜槓」\」,這是系統檔案系統自身的約定,路徑層次使用「\」區分而不是使用「\」來區分:

所以f:\office\trunk__out\pro debug\bin\officeinfo.dll這樣是不正確的。

而在程式中,字串中的「\」主要是為了轉義,「\」轉義後被理解為「\」,「\」才能夠被作業系統檔案系統所理解,比如用字串表示上述路徑:「f:\office\trunk\__out\pro debug\bin\officein可以fo.dll」,同理,如果想要表示「\」,可以寫作「\\」。

2.if函式判斷問題,是否執行成功

3.with語句

4.with open語句:

在讀寫檔案時為了保證無論是否出錯都能正確地關閉檔案,我們可以使用try … finally來實現:

try:

f = open('/path/to/file', 'r')

print(f.read())

finally:

if f:

f.close()

但是每次都這麼寫實在太繁瑣,所以,python引入了with語句來自動幫我們呼叫close()方法:

with

open('/path/to/file', 'r') as f:

print(f.read())

可以進行多個檔案同時開啟,並且不用關心檔案有關閉的問題:

with

open('a.txt','r',encoding='utf-8') as f,open('b.txt') as f1:

Python 網路爬蟲 爬取表情包

import requests import os import urllib.parse from bs4 import beautifulsoup 函式 判斷表情包是不是0個 def is zero url test requests.get url msg test.content s bea...

爬蟲 學習爬取表情包

表情包位址 表情位址 1.請求目標 2.匹配不同位址 url def get urls url 1.請求目標 response requests.get url 2.通過正則來匹配不同位址 url 每張共有內容保留,不同的內容用.來匹配 表示匹配任意數量不換行的字元 表示盡可能匹配最短的字元 r u...

爬取表情包

這是我第一次在這寫部落格,還是有點興奮。我也是剛接觸python不久,發現python 真的很強大,簡單就可以處理複雜的事。最近很想寫個爬蟲,但水平沒達到,正好csdn學院有個公開課,黃勇老師講的 90分鐘掌握python多執行緒爬蟲 全程實戰 3月6日晚20 00我聽了直播,當時沒跟上,等看了回播...