import urllib.request #导入urllib.request库
import re #导入正则表达式(re)库
reg = re.compile('<dd>.*?<i class=".*?">(\d*)</i>
.*?<img data-src="(.*?)" alt="(.*?)" class="board-img" />.*?'
'star">\W*(.*?)\W*</p>.*?releasetime">(.*?)</p>
.*?<i class="integer">(\d\.).*?(\d)</i></p>',re.S) #正则表达式匹配自己所需的信息
for page in range(0,100,10): #因为我们知道猫眼电影TOP100第一页网址后缀是 ?offset=0,第二页是 ?offset=10,所以以10为步长,遍历100
print(page) #输出遍历的数字
url_template = 'http://maoyan.com/board/4?offset={}' #format()函数是格式限定符,格式化字符串,{}是格式字符串的
url = url_template.format(page) #用format()函数
url = urllib.request.urlopen(url) #链接请求
html = url.read().decode('utf8') #读取源代码
# print(html) #输出结果,测试
movie = reg.findall(html) #返回正则匹配的信息内容
# print(movie) #测试
mo = [] #建立一个空的列表
for movies in movie: #遍历列表每一条的信息内容,使每一条信息形成一个单独的列表
number = movies[0] #取每一条列表中的特定字段
url = movies[1] #取每一条列表中的特定字段
name = movies[2] #取每一条列表中的特定字段
start = movies[3] #取每一条列表中的特定字段
date = movies[4] #取每一条列表中的特定字段
source = movies[-2]+movies[-1] #连接列表中的两个元素
mo.append([number,name,source,start,date,url]) #将每一条列表信息添加到刚才创建的空列表,形成一个二维数组。
print(mo) #输出结果
关注微信公众号,获取更多资源