現在開源的網頁抓取程序有很多,各種語言應有盡有。
這里分享一下Python從零開始的網頁抓取過程
第一步:安裝Python
點擊下載適合的版本https://www.python.org/
我這里選擇安裝的是Python2.7.11
第二步:安裝PythonIDE可以任意選擇,這里安轉的是PyCharm
點擊下載地址:http://www.jetbrains.com/pycharm/download/#section=windows
下載安裝后可以選擇新建一個項目,然后把需要編譯的py文件放在項目中。
第三步安裝引用包
在編譯過程中會發現兩個包的引用失敗BeautifulSoup和xlwt,前者是對html標記的解析庫,后者是可以對分析后的數據導出為excel文件
安裝方法一樣,這里的安裝類似Linux依賴安裝包一樣。
常用的安裝步驟
1.在系統中PATH環境變量添加Python安裝目錄
2.將需要安裝的包解壓后打開CMD命令窗口,分別切換至安裝包目錄,運行分別運行python setup.py build和python setup.py install
這樣兩個包就安裝完成了
第四步編譯運行
以下是編譯執行的抓取代碼,這里可以根據實際需求進行改動。簡單的實現網頁讀取,數據抓取就挺簡單的。
#coding:utf-8 import urllib2 import os import sys import urllib import string from bs4 import BeautifulSoup #導入解析html源碼模塊 import xlwt #導入excel操作模塊 row = 0 style0 = xlwt.easyxf('font: name Times SimSun') wb = xlwt.Workbook(encoding='utf-8') ws = wb.add_sheet('Sheet1') for num in range(1,100):#頁數控制 url = "http://www.xxx.com/Suppliers.asp?page="+str(num)+"&hdivision=" #循環ip地址 header = { "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.22 Safari/537.36 SE 2.X MetaSr 1.0", "Referer":"http://www.xxx.com/suppliers.asp" } req = urllib2.Request(url,data=None,headers=header) ope = urllib2.urlopen(req) #請求創建完成 soup = BeautifulSoup(ope.read(), 'html.parser') url_list = [] #當前url列表 for _ in soup.find_all("td",class_="a_blue"): companyname=_.a.string.encode('utf-8').replace("\r\n"," ").replace('|','')#公司名稱 detailc=''#廠商詳情基本信息 a_href='http://www.xxx.com/'+ _.a['href']+'' #二級頁面 temphref=_.a['href'].encode('utf-8') if temphref.find("otherproduct") == -1: print companyname print a_href reqs = urllib2.Request(a_href.encode('utf-8'), data=None, headers=header) opes = urllib2.urlopen(reqs) deatilsoup = BeautifulSoup(opes.read(), 'html.parser') for content in deatilsoup.find_all("table", class_="zh_table"): #輸出第一種聯系方式詳情 detailc=content.text.encode('utf-8').replace("\r\n", "") #print detailc # 輸出詳細信息 row = row + 1 # 添加一行 ws.write(row,0,companyname,style0) # 第幾行,列1 列2...列n ws.write(row,1, detailc,style0) print '正在抓取'+str(row) wb.save('bio-equip11-20.xls') print '操作完成!'
運行結束則會在PycharmProjects項目的目錄下創建已經采集好的數據保存excel文件。