python爬蟲爬取ajax頁面
阿新 • • 發佈:2019-01-28
# coding:utf-8
# 引入selenium中的webdriver
import re
from urllib import urlretrieve
from selenium import webdriver
import time
# webdriver中的PhantomJS方法可以開啟一個我們下載的靜默瀏覽器。
# 輸入executable_path為當前資料夾下的phantomjs.exe以啟動瀏覽器
driver = webdriver.PhantomJS(executable_path="C:/Users/lance/Downloads/phantomjs-2.1.1-windows/bin/phantomjs" )
# 下載HTML
def getHtml(url):
# 使用瀏覽器請求頁面
driver.get(url)
# 載入3秒,等待所有資料載入完畢
time.sleep(15)
# 通過id來定位元素,
# .text獲取元素的文字資料
html = driver.page_source.encode('utf-8', 'ignore') # 這個函式獲取頁面的html
driver.get_screenshot_as_file(url+".png") # 獲取頁面截圖
print "Success To Create the screenshot & gather html"
# 關閉瀏覽器
return html
# 從html中解析出圖片URL
def getImgList(html):
reg = r'src="(http://imgsrc.baidu.com/.*?\.jpg)"'
imgre = re.compile(reg)
htmld = html.decode('utf-8')
imglist = imgre.findall(htmld)
return imglist
# 下載處理
def imgDownload(imglist,i):
x=0
for imgurl in imglist:
print(imgurl)
urlretrieve(imgurl,'E:/spider/beautiful/%s%s.jpg' % (x,i))
x+=1
url = 'http://tieba.baidu.com/p/2173159072#!/l/p'
if __name__ == '__main__':
for i in range(1,7):
setUrl = url+str(i)
print(setUrl)
html = getHtml(setUrl)
imgList = getImgList(html)
print imgList
imgDownload(imgList,str(i))
driver.close()