日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

爬取百度贴吧图片

發布時間:2024/1/18 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 爬取百度贴吧图片 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本次文章內容是爬取貼吧圖片,希望對大家有所幫助

使用環境:我用的是python2.7.9
在Python 3以后的版本中,urllib2這個模塊已經不單獨存在(也就是說當你import urllib2時,系統提示你沒這個模塊),urllib2被合并到了urllib中。

  • urllib2.urlopen()變成了urllib.request.urlopen()
  • urllib2.Request()變成了urllib.request.Request()

如果有的用的是python3以后的版本,記得改一下哦

一、 獲取要爬取的貼吧的網址

打開瀏覽器,找到我們想爬取的貼吧,獲取其網址

二、 獲取頁面源代碼

利用下面函數來獲取源代碼

def gethtml(url):page = urllib.urlopen(url)html = page.read()return html

三、匹配的圖片地址

首先,我們打開第一步的網址,右擊審查元素,在審查元素中找到圖片的地址,觀察其地址的格式

這里,我匹配的是bpic等于的那個網址,從這我們可以看到圖片的地址是以.jpg結尾,利用正則進行匹配

reg = r'bpic="(.*?\.jpg).*?pic'

這里括號所括住的部分,正是我們所需要的地址

  • (.*?)是進行最小匹配,是非貪婪模式
  • \ 是轉義字符

四、保存圖片至本地

存入本地

urllib.urlretrieve(imgurl, '%s.jpg' % x)

或者可以存至自己新建的文件夾

f = open('tupian/'+str(x)+'.jpg', 'wb') f.write((urllib2.urlopen(imgurl)).read()) f.close()

五、完整代碼呈現

代碼中有中文時,完整添加的是 # - * - coding:utf-8 - * -

#coding:utf8只是簡寫

此程序中,共用到三個庫:

  • import re
  • import urllib
  • import urllib2
#代碼中有中文時,需加#coding:utf8 # coding:utf8#導入需要的模塊,這里需要re模塊匹配正則,urllib模塊獲取網頁源碼,urllib2模塊將獲取的圖片存入文件夾中 import re import urllib import urllib2#獲取網頁源代碼的函數 def gethtml(url):page = urllib.urlopen(url)html = page.read()return html#獲取圖片的函數 def getimg(html):#利用正則獲取圖片的網址reg = r'bpic="(.*?\.jpg).*?pic'imgre = re.compile(reg)imglist = re.findall(imgre,html)#此變量x用于下載圖片時為圖片命名x=0for imgurl in imglist:#這個print可以用于檢驗匹配出的圖片地址print imgurl#第一種:下載圖片,保存到本地#urllib.urlretrieve(imgurl, '%s.jpg' % x)#第二種:將下載好的文件存入一個文件夾中.(wb存入時會刪除此文件夾原有的圖片)f = open('tupian/'+str(x)+'.jpg', 'wb')f.write((urllib2.urlopen(imgurl)).read())f.close()x+=1 html = gethtml("http://tieba.baidu.com/f?ie=utf-8&kw=風景") getimg(html)

結果呈現


以上就是爬取貼吧圖片的全部過程

總結

以上是生活随笔為你收集整理的爬取百度贴吧图片的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。