1.準備工作:
1.1安裝requests: cmd >> pip install requests
1.2 安裝lxml: cmd >> pip install lxml
1.3安裝wheel: cmd >> pip install wheel
1.4 安裝xlwt: cmd >> pip install xlwt
2. 編寫程式碼
2.1使用requests.get獲取頁面
編譯結果
2.2 使用lxml將資料改成xpath結構
2.3 精確獲取資料
2.4 使用for in迴圈輸出資料
注意:print(tr.xpath(".//td/text()"))中 如果沒有加.只會迴圈相同的內容,上圖就是沒有加點
正確做法
2.5 只獲取需要的資料
3.使用xlwt建立excel表,儲存資料
3.1 建立excel表
執行結果
3.2 將資料新增到excel表中
3.3 批量新增資料(讓j累加)
3.4 多頁資料新增
最終程式碼
import requests from lxml import etree import xlwt #設定瀏覽器的請求頭,告訴伺服器我們是從瀏覽器來的,作用是阻止被網站反爬 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'Connection': 'keep-alive' } #建立一個工作簿 f = xlwt.Workbook() #新增一個工作表 sheet3d = f.add_sheet("3d", cell_overwrite_ok=True) #往表裡新增表頭 row0 = ['開獎日期','期號','中獎號碼1','中獎號碼2','中獎號碼3','銷售額(元)','返獎比例'] for i in range(0,len(row0)): sheet3d.write(0,i,row0[i]) j = 1 for i in range(1, 21): url = "http://kaijiang.zhcw.com/zhcw/html/3d/list_{}.html".format(i) #傳送請求 得到資料 response = requests.get(url=url,headers=headers) #print(response.text) #將資料改成xpath結構 res_xpath = etree.HTML(response.text) trs = res_xpath.xpath('/html/body/table//tr') # print(trs) # 寫入迴圈 for tr in trs[2:-1]: sheet3d.write(j,0,tr.xpath("./td[1]/text()")[0]) sheet3d.write(j,1,tr.xpath("./td[2]/text()")[0]) sheet3d.write(j,2,tr.xpath("./td[3]/em[1]/text()")[0]) sheet3d.write(j,3,tr.xpath("./td[3]/em[2]/text()")[0]) sheet3d.write(j,4,tr.xpath("./td[3]/em[3]/text()")[0]) sheet3d.write(j,5,tr.xpath("./td[4]/text()")[0]) sheet3d.write(j,6,tr.xpath("./td[5]/text()")[0]) j += 1; f.save('3D.xls')