今天給大家分享一個小網站的數據采集,并寫到excel里面!
分析網站
目標網站是“小咪購”,這里有天貓所有的含有購物券的商品信息,我們今天就來抓它吧!
隨便找一段文字,然后點擊右鍵查看網頁源代碼,看看是否存在該文字,如果存在,那么這個網頁就是靜態(tài)網站了!很幸運,這個網站居然是靜態(tài)的。
那就簡單了,不需要去分析ajax加載數據或者找json包了,直接獲取網頁源代碼==>>匹配相關內容==>>保存數據即可!
工具和庫
Windows+python3.6
import random
import time
import requests
from lxml import etree
import xlwt
用這幾個庫就可以搞定了!注意xlwt和xlrd這2個庫都是操作excel的,一個是保存數據,一個是讀取數據,不要搞混了。
開始寫代碼
首先寫一個函數,將所有的爬蟲工作寫到函數里,如下圖
這個網站需要寫上headers,不寫是抓不到數據的!新建一個列表,將爬到的相關數據寫入列表,它的形式大概是這樣的:【【產品信息A1,2,3……】,【產品信息B1,2,3……】……】,這么寫列表是因為我們最后要將他們寫如excel表格,那么列表中的每一個元素(還是列表形式)都是一行數據,方便寫入!
注意第33行,列表構成的時候,用+連接會將所有列表中的元素放入一個列表,比如:【1,2,3】+【4,5】=【1,2,3,4,5】,而用append()函數則會將后面的內容作為一個元素加入列表中,比如:[1,2,3].append([4,5])=[1,2,3,[4,5]]
下來就是寫入excel了,首先是新建excel表格,并寫入第一行數據
后面的數據,依次按格式寫入并最后用wb.save(路徑)的方式保存即可!完整代碼及效果如下
由于網站更新的很快(官方說是10分鐘。。。),所以也沒有抓取那么多,所有的頁面有大約600多頁,一頁100條信息,也就是說一共有6萬多條商品信息,如果不用多線程的話會很慢!
代碼在上傳的過程中會有壓縮,如果實在看不清楚的話,大家可以私信我獲取源碼!