Python學習筆記5 包和網路爬蟲 待續

2021-08-22 19:36:16 字數 1861 閱讀 2439

1.模組

2.包

建立包    1.建立資料夾用來存放相關模組,資料夾名為包的名

2.在資料夾中建立乙個__init__.py的模組檔案,內容可以為空

匯入包    import packagename.modulename 

快速學習模組     import modulename

print(modulename.__doc__)

dir(modulename)  ##獲取模組裡的所有變數

modulename.__all__

from modulename import *  ##只匯入all包含的所有引數,一般將所有對外的介面都放入all中

modulename.__file__   ##源**所在的位置

3.網路爬蟲

url網路位址    protocol(協議)://hostname(網域名稱或ip位址)[:port埠http預設80]/path

urllib包        

request模組    import urllib.request

req = urllib.request.request(url)

response = urllib.request.urlopen(req)

variable = response.read()            ##訪問不需要解碼

variable = response.read().decode('utf-8') ##訪問文字等需要解碼

with open('filename','wb') as f:

f.write(variable)  ##存

parse模組        import urllib.request

import urllib.parse

data = {}

date[key] = value

data = urllib.parse.urlencode(data).encode('utf-8')

req = urllib.request.request(url,data)

response = urllib.request.urlopen(req)

variable = response.read().decode('utf-8')

通過判斷headers下的request headers中的user-agent來判斷是**訪問網頁還是瀏覽器訪問網頁

新增headers    req = urllib.request.request(url,data)

variable.add_header('user-agent',' ')

response = urllib.request.urlopen(req)

variable = response.read().decode('utf-8')

延遲        import time

time.sleep(num)

**                 dictname =   ##型別包括http等

proxy_support= urllib.request.proxyhandler(dictname)

建立opener    opener = urllib.request.build_opener(proxy_support)

新增headers  opener.addheaders = [('user-agent',' ')]

安裝opener    urllib.request.install_opener(opener)

隨機選擇         import random

random.choice(listname)

Python學習筆記 模組和包

4.pyc檔案 2 包 package 1.模組的概念 2.模組的兩種匯入方式 1.import 匯入 import 模組名1使用 as 可以指定模組的別名 import 模組名1 as 模組別名 使用 as 給模組名起 別名 import hm 01 測試模組1 as dogmodule impo...

Python學習筆記 包

包用於將一組模組歸併到乙個目錄中,此目錄即為包,目錄名即為包名 1.包是乙個有層次的檔案目錄結構,它定義了乙個由模組和 子包組成的python應用程式執行環境 2.基於包,python在執行模組匯入時可以指定模組的匯入路徑 import 目錄名.目錄名 模組名 import dir1 dir2 mo...

python學習筆記 包

模組 乙個模組就是乙個包含pytho 的檔案,字尾名是.py 模組匯入 import module name as alis module name module name.function name 呼叫模組中的方法 module name.class name 呼叫模組中的屬性 假如模組名稱直接...