python爬蟲(chóng)入門(mén)教程之糗百圖片爬蟲(chóng)代碼分享
學(xué)習(xí)python少不了寫(xiě)爬蟲(chóng),不僅能以點(diǎn)帶面地學(xué)習(xí)、練習(xí)使用python,爬蟲(chóng)本身也是有用且有趣的,大量重復(fù)性的下載、統(tǒng)計(jì)工作完全可以寫(xiě)一個(gè)爬蟲(chóng)程序完成。
用python寫(xiě)爬蟲(chóng)需要python的基礎(chǔ)知識(shí)、涉及網(wǎng)絡(luò)的幾個(gè)模塊、正則表達(dá)式、文件操作等知識(shí)。昨天在網(wǎng)上學(xué)習(xí)了一下,寫(xiě)了一個(gè)爬蟲(chóng)自動(dòng)下載「糗事百科」里面的圖片。源代碼如下:
# -*- coding: utf-8 -*-
# 上面那句讓代碼里支持中文
#---------------------------------------
# 程序:糗百圖片爬蟲(chóng)
# 版本:0.1
# 作者:趙偉
# 日期:2013-07-25
# 語(yǔ)言:Python 2.7
# 說(shuō)明:能設(shè)置下載的頁(yè)數(shù)。沒(méi)有做更多抽象和交互方面的優(yōu)化。
#---------------------------------------
import urllib2
import urllib
import re
#正則表達(dá)式,用來(lái)抓取圖片的地址
pat = re.compile('<div class="thumb">\\n<img src=\"(ht.*?)\".*?>')
#用來(lái)合成網(wǎng)頁(yè)的URL
nexturl1 = "http://m.qiushibaike.com/imgrank/page/"
nexturl2 = "?s=4582487&slow"
#頁(yè)數(shù)計(jì)數(shù)
count = 1
#設(shè)置抓取的頁(yè)數(shù)
while count < 3:
print "Page " + str(count) + "\n"
myurl = nexturl1 + str(count) + nexturl2
myres = urllib2.urlopen(myurl)#抓取網(wǎng)頁(yè)
mypage = myres.read()#讀取網(wǎng)頁(yè)內(nèi)容
ucpage = mypage.decode("utf-8") #轉(zhuǎn)碼
mat = pat.findall(ucpage)#用正則表達(dá)式抓取圖片地址
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"
使用方法:新建一個(gè)practice文件夾,將源代碼保存為qb.py文件,并放在practice文件夾中,在命令行里執(zhí)行python qb.py,即開(kāi)始下載圖片??梢孕薷脑创a里面的while語(yǔ)句設(shè)置下載的頁(yè)數(shù)。
- Python抓取框架Scrapy爬蟲(chóng)入門(mén):頁(yè)面提取
- python爬蟲(chóng)入門(mén)教程--正則表達(dá)式完全指南(五)
- python爬蟲(chóng)入門(mén)教程--HTML文本的解析庫(kù)BeautifulSoup(四)
- python爬蟲(chóng)入門(mén)教程--利用requests構(gòu)建知乎API(三)
- python爬蟲(chóng)入門(mén)教程--優(yōu)雅的HTTP庫(kù)requests(二)
- python爬蟲(chóng)入門(mén)教程--快速理解HTTP協(xié)議(一)
- python爬蟲(chóng)入門(mén)教程之點(diǎn)點(diǎn)美女圖片爬蟲(chóng)代碼分享
- python爬蟲(chóng)基礎(chǔ)知識(shí)點(diǎn)整理
相關(guān)文章
python教程網(wǎng)絡(luò)爬蟲(chóng)及數(shù)據(jù)可視化原理解析
這篇文章主要為大家介紹了python教程中網(wǎng)絡(luò)爬蟲(chóng)及數(shù)據(jù)可視化原理的示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2021-10-10
Tornado 多進(jìn)程實(shí)現(xiàn)分析詳解
這篇文章主要介紹了Tornado 多進(jìn)程實(shí)現(xiàn)分析詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01
Python編程itertools模塊處理可迭代集合相關(guān)函數(shù)
本篇博客將為你介紹Python函數(shù)式編程itertools模塊中處理可迭代集合的相關(guān)函數(shù),有需要的朋友可以借鑒參考下,希望可以有所幫助2021-09-09
利用OpenCV+Tensorflow實(shí)現(xiàn)的手勢(shì)識(shí)別
這幾天沒(méi)事,想著再學(xué)點(diǎn)一些視覺(jué)識(shí)別方向的東西,因?yàn)橹白隽蓑?yàn)證碼識(shí)別,有了機(jī)器學(xué)習(xí)的信心,因此這次打算做個(gè)手勢(shì)識(shí)別,下面這篇文章主要給大家介紹了關(guān)于利用OpenCV+Tensorflow實(shí)現(xiàn)的手勢(shì)識(shí)別的相關(guān)資料,需要的朋友可以參考下2022-11-11
Python+微信接口實(shí)現(xiàn)運(yùn)維報(bào)警
這篇文章主要介紹了Python+微信接口實(shí)現(xiàn)運(yùn)維報(bào)警的相關(guān)資料,需要的朋友可以參考下2016-08-08
Python的Tornado框架實(shí)現(xiàn)圖片上傳及圖片大小修改功能
Tornado是一個(gè)異步的Python Web開(kāi)發(fā)框架,同時(shí)也是一個(gè)優(yōu)秀的異步服務(wù)器開(kāi)發(fā)庫(kù),這里我們將來(lái)講解一下Python的Tornado框架實(shí)現(xiàn)圖片上傳及圖片大小修改功能方面的一些重點(diǎn):2016-06-06
Python將博客內(nèi)容html導(dǎo)出為Markdown格式
Python將博客內(nèi)容html導(dǎo)出為Markdown格式,通過(guò)博客url地址抓取文章,分析并提取出文章標(biāo)題和內(nèi)容,將內(nèi)容構(gòu)建成html,再轉(zhuǎn)換為Markdown文件2025-04-04

