在mac下使用python抓取數據


2015已經過去,這是2016的第一篇博文!

祝大家新年快樂!

但是我還有好多期末考試!

還沒開始復習,唉,一把辛酸淚!

 

 

最近看了一遍彥祖的文章叫做

iOS程序員如何使用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()

 

呵呵噠...

 


免責聲明!

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



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