python爬蟲入門教程之糗百圖片爬蟲代碼分享
學習python少不了寫爬蟲,不僅能以點帶面地學習、練習使用python,爬蟲本身也是有用且有趣的,大量重復性的下載、統(tǒng)計工作完全可以寫一個爬蟲程序完成。
用python寫爬蟲需要python的基礎知識、涉及網絡的幾個模塊、正則表達式、文件操作等知識。昨天在網上學習了一下,寫了一個爬蟲自動下載「糗事百科」里面的圖片。源代碼如下:
# -*- coding: utf-8 -*-
# 上面那句讓代碼里支持中文
#---------------------------------------
# 程序:糗百圖片爬蟲
# 版本:0.1
# 作者:趙偉
# 日期:2013-07-25
# 語言:Python 2.7
# 說明:能設置下載的頁數(shù)。沒有做更多抽象和交互方面的優(yōu)化。
#---------------------------------------
import urllib2
import urllib
import re
#正則表達式,用來抓取圖片的地址
pat = re.compile('<div class="thumb">\\n<img src=\"(ht.*?)\".*?>')
#用來合成網頁的URL
nexturl1 = "http://m.qiushibaike.com/imgrank/page/"
nexturl2 = "?s=4582487&slow"
#頁數(shù)計數(shù)
count = 1
#設置抓取的頁數(shù)
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文件夾中,在命令行里執(zhí)行python qb.py,即開始下載圖片??梢孕薷脑创a里面的while語句設置下載的頁數(shù)。
相關文章
Python編程itertools模塊處理可迭代集合相關函數(shù)
本篇博客將為你介紹Python函數(shù)式編程itertools模塊中處理可迭代集合的相關函數(shù),有需要的朋友可以借鑒參考下,希望可以有所幫助2021-09-09
利用OpenCV+Tensorflow實現(xiàn)的手勢識別
這幾天沒事,想著再學點一些視覺識別方向的東西,因為之前做了驗證碼識別,有了機器學習的信心,因此這次打算做個手勢識別,下面這篇文章主要給大家介紹了關于利用OpenCV+Tensorflow實現(xiàn)的手勢識別的相關資料,需要的朋友可以參考下2022-11-11
Python的Tornado框架實現(xiàn)圖片上傳及圖片大小修改功能
Tornado是一個異步的Python Web開發(fā)框架,同時也是一個優(yōu)秀的異步服務器開發(fā)庫,這里我們將來講解一下Python的Tornado框架實現(xiàn)圖片上傳及圖片大小修改功能方面的一些重點:2016-06-06

