Py / Python網頁資料擷取與分析班-筆記 9/13

主要內容

_用os模組新增資料夾與刪除舊資料

_取得台彩威力彩開獎資料


1.用os模組跟shutil模組新增資料夾與刪除舊資料

因為存放圖檔的資料夾跟目前質性的py檔是在同一個目錄之下

os.getcwd( ) 可以取得目前執行的py檔所在的資料夾路徑

透過if判斷,如果存放圖檔的資料夾存在的話就刪除

然後再重新建立資料夾

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import os,shutil

wd = os.getcwd()+"\\image11"
print(wd)

if os.path.exists(wd):
    shutil.rmtree(wd)
os.mkdir(wd)


import requests
from bs4 import BeautifulSoup

for p in range(1,7):
    html = requests.get("https://www.tqcplus.org.tw/ExpList.aspx?oc=t&p="+str(p))
    
    print(html.status_code)

    sp= BeautifulSoup(html.text,"html.parser")

    # print(sp)
    sd=os.mkdir(wd+"\\"+str(p))
    for i in range(0,len(sp.find_all("img","sp-simpleportfolio-img"))):
        img=sp.find_all("img","sp-simpleportfolio-img")[i].get("src")
        print(img)
        imgUrl=requests.get(img)
        
        imgName= img[img.rfind("\\")+1:len(img)]
        print(imgName)
        f=open("image11\\" + str(p)+ "\\"+ imgName,"wb")
        f.write(imgUrl.content)
        f.close()

 

img[img.rfind(“\\”)+1:99] 改成 img[img.rfind(“\\”)+1:len(img)],也就是取得 img內最後一個”\”+1的位置到整個 img資料的最後一個位置

2.取得台彩威力彩開獎資料

資料來源:台灣彩券

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import requests
from bs4 import BeautifulSoup

html = requests.get("https://www.taiwanlottery.com.tw/index_new.aspx")

sp = BeautifulSoup(html.text,"html.parser")

# print(sp)

#威力彩區塊

weli = sp.find_all("div","contents_box02")[0]

# print(weli)

dataTime = weli.find("span","font_black15").text
# print(weli.find("span","font_black15").text)

data1 = weli.find_all("div","ball_tx ball_green")

#開出順序    
print("開出順序:",end="")
for i in range(0,6):

    print(data1[i].text,end="")

#大小順序
print("\n大小順序:",end="")
for i in range(6,12):

    print(data1[i].text,end="")

#第二區
data2 = weli.find("div","ball_red")
print("\n第二區:",end="")
print(data2.text,end="")

 

print( )的end參數可以修改結尾的方式,預設就是”\n”

改成””,就變成不斷行

輸出的結果:

開出順序:16 14 23 29 02 04 
大小順序:02 04 14 16 23 29 
第二區:04

參考資料

Python print()中的end参数用法详细介绍