好不容易盼來三天假,于是我在家蹲著coding啦。
這一次課堂,我主要了解兩個知識點:1、利用urllib抓取網頁;2利用正則表達式獲取網頁中需要的內容。
第一個練習做的比較順利,代碼如下:
'''
import urllib.request
import re
page = urllib.request.urlopen('https://tieba.baidu.com/p/3205263090')
print(page.read())
html = page.read()
html = html.decode('UTF-8')
src="([.\S].jpg)" pic_ext="jpeg"
reg = r'src="([.\S].jpg)" pic_ext="jpeg"'
imgurls = re.findall(reg, html) #匹配出所有url
x=1
遍歷
for imgurl in imgurls:
print (imgurl)
urllib.request.urlretrieve(imgurl,"E:/pycharmproject/pachongtest/%s.jpg"%x)
print("downloading pic %d"%x)
x+=1
'''
第二個練習遇到了困難。運行完畢后報“url錯誤”,我將url打印出來后發現是這樣的:
“//hbimg.b0.upaiyun.com/654953460733026a7ef6e101404055627ad51784a95c-B6OFs4_sq75sf”,試著更換正則表達式,得到的url還是這樣的,最后沒有辦法,手動的在獲取的每個url上加了一個http:,于是圖片都能保存了。代碼如下:
'''
import urllib.request
import re
page = urllib.request.urlopen('http://huaban.com/pins/1120072731/')
html = page.read()
html = html.decode('UTF-8')
print(html)
reg = r'<img src="([.\S])"'
imgurls = re.findall(reg, html) #匹配出所有url
x=1
遍歷
for imgurl in imgurls:
imgurl='http:'+imgurl
print(imgurl)
urllib.request.urlretrieve(imgurl,"E:/pycharmproject/pachongtest/%s.jpg"%x)
print("downloading pic %d"%x)
x+=1
'''
另外,因為開始是在OSX上寫的,環境是python2.7,這兩天換到臺式機上,裝的python3.6,發現語法什么的還是有很多不一樣,兩邊的代碼放到對方那不一定能正確運行。