在mac下使用python抓取數據
所以自己也想小試牛刀.于是便開始動手寫,但初次接觸,還是遇見了很多不懂的東西,于是爬文一個一個解決了,最終抓取了自己想要的東西
彥祖的這篇文章里Python代碼格式有錯,但是解釋是沒錯的!所以我待會兒貼出我能正確運行的代碼
彥祖的文章里說可以直接用類似于cocoapods的Python庫管理工具pip進行安裝我們解析網頁所需要用的第三方庫BeautifulSoup!
Mac確實是自帶了Python.但是并沒有安裝pip,所以需要我們手動進行安裝!
有人說可以使用命令:easy_install pip進行安裝,但是我并沒有安裝成功!百思不得其解
于是爬文尋找其他方法: http://stackoverflow.com/questions/17271319/installing-pip-on-mac-os-x
原來是需要我的超級管理員權限...
至此,安裝Pip成功
- 第二步:安裝BeautifulSoup!
用彥祖的命令去運行,結果報錯!提示我安裝失敗!(又忘了截圖..)
沒辦法,就嘗試手動安裝BeautifulSoup,結果還是不行
后來我想是不是還是因為沒有 管理員權限 的原因
于是嘗試加上過后,就安裝成功了
好了,開始寫代碼吧,但是我一個新人連該用什么來寫Python代碼都不知道!
又搜!(好低級的問題)=====>用記事本就行(真方便)( 保存為.py文件后,是用的xcode打開的)
于是敲了如下代碼:
1 #!/usr/bin/python 2 #-*- coding: utf-8 -*- 3 #encoding=utf-8 4 5 import urllib2 6 import urllib 7 import os 8 from BeautifulSoup import BeautifulSoup 9 def getAllImageLink(): 10 html = urllib2.urlopen('http://www.dbmeinv.com').read() 11 soup = BeautifulSoup(html) 12 13 liResult = soup.findAll('li',attrs={"class":"span3"}) 14 15 for li in liResult: 16 imageEntityArray = li.findAll('img') 17 for image in imageEntityArray: 18 link = image.get('src') 19 imageName = image.get('title') 20 filesavepath = '/Users/WayneLiu_Mac/Desktop/meizi/%s.png' % imageName 21 urllib.urlretrieve(link,filesavepath) 22 print filesavepath 23 24 25 if __name__ == '__main__': 26 getAllImageLink()
獲得了如下數據(彥祖好邪惡....):
其實python真的很強大的,短短數幾十行代碼就可以實現這些功能!
閑來無事,又完善了一下代碼,用以獲得所有妹子的照片...
1 #!/usr/bin/python 2 #-*- coding: utf-8 -*- 3 #encoding=utf-8 4 5 import urllib2 6 import urllib 7 import os 8 import socket 9 from BeautifulSoup import BeautifulSoup 10 11 12 def getAllImageLink(): 13 xiayiye = True 14 page = '/?pager_offset=12' 15 while(1): 16 html = urllib2.urlopen('http://www.dbmeinv.com%s' % page).read() 17 soup = BeautifulSoup(html) 18 19 liResult = soup.findAll('li',attrs={"class":"span3"}) 20 nextResult = soup.findAll('li',attrs={"class":"next next_page"}) 21 22 23 for li in liResult: 24 imageEntityArray = li.findAll('img') 25 nameResult = li.findAll('span',attrs={"class":"starcount"}) 26 for name in nameResult: 27 nameTitle = name.get('topic-image-id') 28 29 for image in imageEntityArray: 30 link = image.get('src') 31 filesavepath = '/Users/WayneLiu_Mac/Desktop/meizi2/%s.jpg' % nameTitle 32 socket.setdefaulttimeout(30) 33 urllib.urlretrieve(link,filesavepath) 34 print filesavepath 35 36 for nextPage in nextResult: 37 aEntityArray = nextPage.findAll('a') 38 for a in aEntityArray: 39 nextTitle = a.get('title') 40 print nextTitle 41 page = a.get('href') 42 print page 43 if nextTitle.encode('utf-8') != "下一頁": 44 xiayiye = False 45 print xiayiye 46 if xiayiye == False: 47 break 48 49 if __name__ == '__main__': 50 getAllImageLink()
呵呵噠...
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!