python爬蟲采集網站數據


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')

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM