1. 程式人生 > >模組的語法 import ,from...import....

模組的語法 import ,from...import....

------------------------積極的人在每一次憂患中都看到一個機會, 而消極的人則在每個機會都看到某種憂患
1. 認識模組
模組可以認為是一個py檔案. 模組實際上是我們的py檔案執行後的名稱空間
匯入模組:
1. 判斷sys.modules中是否已經匯入過該模組
2. 開闢一個記憶體
3. 在這個記憶體中執行該py檔案
4. 給這個記憶體起個名字, 一般用的是py檔案的名字。返回給匯入方
如果你的py檔案是啟動檔案, 名字是__main__

程式的入口一般是:
if __name__ == "__main__":
pass
2. import
import 模組名
模組名.屬性/方法/類

每個模組都有自己的獨立的名稱空間,每個都有一個global, 互相併不影響
模組.屬性 = 值. # 不要這麼幹

3. from xxx import xxx
from 模組 import 函式/變數
當作自己的變數或者函式來使用

from xxx import * 匯入所有
匯入的內容都可以起別名 as

第五週週末作業 小爬蟲--電影天堂

import re
from urllib.request import urlopen
import json

web_site = "https://www.dytt8.net"
content = urlopen(web_site).read().decode("gbk")

obj1 = re.compile(r'·\[<a href="/html/gndy/dyzz/index.html">最新電影下載</a>\]<a href=\'(?P<url>.*?)\'>.*?</a><br/>', re.S)
obj2 = re.compile(r'<div id="Zoom">.*?片  名(?P<movie_name>.*?)<br />.*?<td style="WORD-WRAP: break-word" bgcolor="#fdfddf"><a href="(?P<download>.*?)">', re.S)

f = open('movie.json', mode="a", encoding="utf-8")
it = obj1.finditer(content)

for el in it:
url = el.group("url")
url = web_site + url # 獲取到子頁面的網址

sub_content = urlopen(url).read().decode("gbk")
lst = obj2.findall(sub_content)
movie_name = lst[0][0]
download = lst[0][1]
s = json.dumps({"movie_name":movie_name, "download":download}, ensure_ascii=False)
f.write(s+"\n")
f.flush()
f.close()