python爬蟲_入門_翻頁

來源:互聯網
上載者:User

標籤:png   增加   name   com   訪問   _for   urllib   檔案的   .com   

寫出來的爬蟲,肯定不能只在一個頁面爬,只要要爬幾個頁面,甚至一個網站,這時候就需要用到翻頁了

其實翻頁很簡單,還是這個頁面http://bbs.fengniao.com/forum/10384633.html,話說我得給這個人增加了多大的訪問量啊......

10384633重點關注下這個數字,這個就是頁面的名稱,現在嘗試把這個數字+/-1看看有沒有結果

驗證http://bbs.fengniao.com/forum/10384634.html

可以看到,這個頁面是可以訪問的

再試試http://bbs.fengniao.com/forum/10384632.html,這次不了,可以自己去試試,也是可以訪問的

那麼接下來就好辦了,只要把這個數字每次+1或-1就可以了,甚至可以從http://bbs.fengniao.com/forum/1.html開始嘗試串連,一直+1,直到502或404斷開

下面上代碼,還是用之前的內容,這次加了個頁面處理的函數

#!/usr/bin/python# coding: UTF-8import urllibimport urllib2import re#處理地址,並擷取頁面全部的圖片地址def get_image_url(url):  #url_format = urllib2.Request(url) #1  url_open = urllib.urlopen(url) #2  url_read = url_open.read() #3  re_value = re.compile(‘(?<=src\=\").*?\.jpg‘)  image_url_list = re.findall(re_value,url_read) #4  return image_url_list#這個函數專門用來下載,前面兩行是將圖片串連中/前面的內容全部刪除,留下後面的檔案名稱用來儲存檔案的,try不說了,不清楚請翻回去看容錯def down_image(image_url):  rev = ‘^.*/‘  file_name = re.sub(rev,‘‘,image_url)  try:    urllib.urlretrieve(image_url,file_name)  except:    print ‘download %s fail‘ %image_url  else:    print ‘download %s successed‘ %image_url#這個函數用來處理頁面,每次+1def get_page(url):  url_num = re.search(‘(?<=\/)[0-9]+(?=\.)‘,url)  url_num = url_num.group()  url_num_1 = int(url_num) + 1  url = url.replace(url_num,str(url_num_1))  return urlif __name__ == ‘__main__‘:  url = ‘http://bbs.fengniao.com/forum/10384633.html‘  for n in range(1,10):    url = get_page(url)    image_url_list = get_image_url(url)    for image_url in image_url_list:      down_image(image_url) #5

其實可以給get_page傳兩個參數,一個是URL另一個是遞增的數值,就變成了get_page(url,n),但是我沒有這麼寫,可以思考下為什麼,如果把for n in range(1,10)改成while True會怎樣?嘿嘿......回頭人家封你IP可別找我啊

python爬蟲_入門_翻頁

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.