初學python,爬蟲小專案
阿新 • • 發佈:2019-02-14
初學python看完基礎教程後,利用從視訊學來的知識,利用urllib2和BeautifulSoup庫,在python2.7環境下編寫一個小爬蟲,爬取應屆生求職網上西安的校招宣講會資訊。
程式碼如下:
第一次做出一個python的爬蟲還是蠻有成就感的,這裡謝謝@王大寶的CD博主提供的一些思路# coding=utf-8 import urllib2 from bs4 import BeautifulSoup urlstart='http://my.yingjiesheng.com/index.php/personal/xjhinfo.htm/?page='#為了方便翻頁將網址程式碼分成兩部分 urlend='&cid=&city=21&word=&province=0&schoolid=&sdate=&hyid=0' for i in range(1,20):#從網站上直接獲取頁面個數 print '正在列印第'+str(i) url=urlstart+str(i)+urlend#整理網站地址 request=urllib2.urlopen(url)#用urllib2開啟網站 html=request.read()#讀取網站程式碼 bs=BeautifulSoup(html,'html.parser',from_encoding='utf-8')#BeautifulSoup整理網站程式碼 alllist1=bs.find_all('tr',class_='bg0')#每一頁的資訊分為兩個部分 alllist2=bs.find_all('tr',class_='bg1') alllist=alllist1+alllist2#整理資訊 for contenttd in alllist: row=[] mouth=contenttd.find('td',width="115").text#定位到宣講時間字元位置 companyweb=contenttd.find('td',width='140').find('a').get('href')#定位到宣講企業網站 if "http" not in companyweb: companyweb="http://my.yingjiesheng.com/"+str(companyweb)#有些企業網站存在省略現象,滑鼠放在網站上可以看到完整網站包含http://頭部,對有省略的網址加上這一部分 companyname=contenttd.find('td',width='140').find('a').text#定位宣講企業名字 xuexiao=contenttd.find('td',width='140').next_sibling.next_sibling.text#定位宣講學校名字,這裡第一個兄弟節點通常是空,所以再定位一次兄弟節點。具體可以看BeautifulSoup官方文件有解釋 jiaoshi=contenttd.find('td',width='140').next_sibling.next_sibling.next_sibling.next_sibling.text#定位宣講學校教室資訊 row.append(mouth) row.append(companyweb) row.append(companyname) row.append(xuexiao) row.append(jiaoshi) for j in range(0,len(row)): print row[j] #print row #列印以上資訊,如果直接列印row,中文不會出現
這裡還沒有爬取到宣講會時間,主要是由於時間便籤採用的是img標籤,還不知道怎麼獲取img標籤的具體圖片資訊,歡迎賜教
這一次只是寫了一個定向爬取靜態網頁的爬蟲,下一步準備學習如何爬取動態網頁,以及如何利用MongDB儲存所爬資料