python爬虫爬取ajax页面

# 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()

你可能感兴趣的:(python)