學習python少不了寫爬蟲,不僅能以點帶面地學習、練習使用python,爬蟲本身也是有用且有趣的,大量重復性的下載、統計工作完全可以寫一個爬蟲程序完成。
用python寫爬蟲需要python的基礎知識、涉及網絡的幾個模塊、正則表達式、文件操作等知識。昨天在網上學習了一下,寫了一個爬蟲自動下載「糗事百科」里面的圖片。源代碼如下:
# -*- coding: utf-8 -*-
# 上面那句讓代碼里支持中文
#---------------------------------------?
#?? 程序:糗百圖片爬蟲?
#?? 版本:0.1?
#?? 作者:趙偉?
#?? 日期:2013-07-25?
#?? 語言:Python 2.7?
#?? 說明:能設置下載的頁數。沒有做更多抽象和交互方面的優化。?
#---------------------------------------
import urllib2
import urllib
import re
#正則表達式,用來抓取圖片的地址
pat = re.compile('
#用來合成網頁的URL
nexturl1 = "http://m.qiushibaike.com/imgrank/page/"
nexturl2 = "?s=4582487&slow"
#頁數計數
count = 1
#設置抓取的頁數
while count < 3:
??? print "Page " + str(count) + "\n"
??? myurl = nexturl1 + str(count) + nexturl2
??? myres = urllib2.urlopen(myurl)#抓取網頁
??? mypage = myres.read()#讀取網頁內容
??? ucpage = mypage.decode("utf-8") #轉碼
??? mat = pat.findall(ucpage)#用正則表達式抓取圖片地址
???????
??? count += 1;
???
??? if len(mat):
??????? for item in mat:
??????????? print "url: " + item + "\n"
??????????? fnp = re.compile('/(\w+\.\w+)$')#下面三行分離出圖片文件的名稱
??????????? fnr = fnp.findall(item)
??????????? fname = fnr[0]
??????????? urllib.urlretrieve(item, fname)#下載圖片
???? ?
??? else:
??????? print "no data"
使用方法:新建一個practice文件夾,將源代碼保存為qb.py文件,并放在practice文件夾中,在命令行里執行python qb.py,即開始下載圖片。可以修改源代碼里面的while語句設置下載的頁數。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
