国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python爬蟲入門教程之糗百圖片爬蟲代碼分享

2020-02-23 05:46:21
字體:
來源:轉載
供稿:網友

學習python少不了寫爬蟲,不僅能以點帶面地學習、練習使用python,爬蟲本身也是有用且有趣的,大量重復性的下載、統計工作完全可以寫一個爬蟲程序完成。

用python寫爬蟲需要python的基礎知識、涉及網絡的幾個模塊、正則表達式、文件操作等知識。昨天在網上學習了一下,寫了一個爬蟲自動下載「糗事百科」里面的圖片。源代碼如下:

代碼如下:
# -*- coding: utf-8 -*-
# 上面那句讓代碼里支持中文

#--------------------------------------- 
#   程序:糗百圖片爬蟲 
#   版本:0.1 
#   作者:趙偉 
#   日期:2013-07-25 
#   語言:Python 2.7 
#   說明:能設置下載的頁數。沒有做更多抽象和交互方面的優化。 
#---------------------------------------

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"

#頁數計數
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語句設置下載的頁數。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安西县| 高青县| 牙克石市| 天水市| 温泉县| 怀柔区| 安溪县| 永吉县| 连城县| 那曲县| 鄄城县| 靖边县| 桓仁| 如东县| 方城县| 浮山县| 昔阳县| 关岭| 越西县| 连云港市| 伽师县| 肥西县| 马边| 七台河市| 盐源县| 祁阳县| 龙海市| 如东县| 阜城县| 呼伦贝尔市| 大埔区| 葫芦岛市| 团风县| 恩施市| 寿阳县| 德保县| 普兰县| 土默特左旗| 惠州市| 理塘县| 垦利县|