編程確實是一個鍛煉邏輯思維最有效的工具之一唾琼,之前自學Python走触。總是陷入一個怪圈:看入門數(shù)據(jù)--一段時間不用忘記了--繼續(xù)看入門書籍叭首。書是看了很多习勤,編程技術卻沒有提高。
后來看了一本書焙格,里面有些觀點讓我茅塞頓開图毕。
做任何事情一定有在短期內簡單可行的辦法。學習不應該是苦差事眷唉,而應該是快樂的予颤,重要的是找到適合自己的學習方法。
在漢語中冬阳,掌握常見的1500-2000個字就能看懂80%的文字蛤虐。在編程中,同樣有著最核心的關鍵知識肝陪。先用這些關鍵的知識構建你的知識體系會讓你學習效率加速驳庭,這是比一開始就鉆到各種細枝末節(jié)里面更好的學習方式。
學習編程是為了真正做出點東西來氯窍。先掌握項目所需的最少必要知識饲常,然后把熱情和精力投入到搭建真實項目中捏检,而不是死磕半年的基礎知識,直到把所有興趣都耗竭了也沒做出什么像樣的東西不皆。
初學者經(jīng)常會遇到的困惑是贯城,看書上或是聽課都懂,但還是不明白要怎么編程霹娄。這是因為缺乏足夠多的實踐能犯。
思維方式改變之后,就是付諸行動了犬耻。最近一直在找練手的小項目來磨煉編程技術踩晶。首先最讓我感興趣的就是Python爬蟲。所以最近一直去爬各種網(wǎng)站的圖片枕磁。
本文要講的是如何爬取虎撲籃球圖片渡蜻。
為簡單起見,先從單個網(wǎng)頁的一個圖片說起计济。后期將進行封裝茸苇,以提高可用性。
創(chuàng)建文件保存目錄
# Create folder for store picture
sub_folder = os.path.join(os.getcwd(), "hupupic")
if not os.path.exists(sub_folder):
os.mkdir(sub_folder)
# os.chdir(sub_folder)
設置Proxy
# Set proxy
proxy_support = urllib2.ProxyHandler({"http":"http://your_proxy:8080/"})
opener = urllib2.build_opener(proxy_support)
urllib2.install_opener(opener)
解析目標網(wǎng)頁沦寂,得到圖片真實地址
sample_url = 'http://photo.hupu.com/nba/p29556-1.html'
req = urllib2.Request(url=sample_url)
resp = urllib2.urlopen(req)
html = resp.read()
start = html.find(r'<div class="flTab">')
end = html.find(r'<div class="comMark" style>')
content = html[start:end]
div_pat = r'<div.*?>(.*?)<\/div>'
div_m = re.findall(div_pat, content, re.S|re.M)
# print div_m[2]
link_list = re.findall(r"(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')", div_m[2])
pic_url = link_list[0]
保存到電腦
file_path = sub_folder
file_name = pic_url.split("/")[-1]
print file_name
fname = file_path + "\\" + file_name
f = urllib2.urlopen(pic_url)
with open(fname, 'wb') as img_file:
img_file.write(f.read())