在本篇博客中,我们将使用requests+正则表达式来爬取猫眼电影官网的TOP100电影榜单,获取每部电影的片名,主演,上映日期,评分和封面等内容。
打开猫眼Top100,分析URL的变化:发现Top100榜总共包含10页,每页10部电影,并且每一页的URL都是有规律的,如第2页为https://maoyan.com/board/4?offset=10,第三页为https://maoyan.com/board/4?offset=20。由此可得第n页为https://maoyan.com/board/4?offset=(n-1)*10。接下来我们通过爬虫四部曲,来对其进行爬取:
首先搭建起程序的主题框架:
import csv
import json
import time
import re
import requests
from requests import RequestException
def get_one_page(url):
pass
def parse_one_page(html):
pass
def write_tofile(content):
pass
if __name__ == '__main__':
for i in range(10):
url = 'https://maoyan.com/board/4?offset='+str(i*10)
#发送请求 获取响应
html = get_one_page(url)
#解析响应内容
content = parse_one_page(html)
#数据存储
write_tofile(content)
#每个页面间隔1s
time.sleep(1)
然后逐一补全上述函数。首先是请求页面的函数:
def get_one_page(url):
try:
#添加User-Agent,放在headers中,伪装成浏览器
headers = {
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36