I did something similar once, created a polygon based on the data driven extent of each page, I then used that to do an intersect query and update data as it pertained to each page. Here's the code I used, maybe it can help you:
mxd = arcpy.mapping.MapDocument("CURRENT")
for i in range(1, mxd.dataDrivenPages.pageCount + 1):
mxd.dataDrivenPages.currentPageID = i
print "Current page: " + str(i)
print "Getting reference extent..."
coords = [mxd.dataDrivenPages.dataFrame.extent.lowerLeft, mxd.dataDrivenPages.dataFrame.extent.lowerRight,
mxd.dataDrivenPages.dataFrame.extent.upperRight, mxd.dataDrivenPages.dataFrame.extent.upperLeft]
polyArray = arcpy.Array([coord for coord in coords])
myPoly = arcpy.Polygon(polyArray, mxd.dataDrivenPages.dataFrame.spatialReference)
if arcpy.Exists("/path/to/extent.shp"):
arcpy.Delete_management("/path/to/extent.shp")
arcpy.CopyFeatures_management(myPoly, "/path/to/extent.shp")
Run from the ArcMap Python console, it grabs the corners of the data-frame, then uses those points as input to create a polygon that gets saved to a Shapefile. This script overwrites each successive page's Shapefile with the next page, so if you want a polygon for each page, you'll have to rename the output with each iteration of the loop (otherwise, you will end up with output only for the last page).