抓取猫眼电影上面Top100榜单,抓取的内容有电影名称,主演,上映时间,图片,得分等信息。抓取的内容以文件形式保存,地址为https://maoyan.com/board/4
1.分析
该榜单页面如下
拉到底部点击下一页,发现此时的URL变化了。
此时的URL变为https://maoyan.com/board/4?offset=10,比之前的URL多了参数offset=10,再点击下一页的URL为https://maoyan.com/board/4?offset=20,由此我们发现了规律,Top100,每页展示10部电影,这样100部电影需要请求10次
2.抓取首页
首先来抓取第一页的内容,我们编写一个get_one_page()的方法
import requests
def get_one_page(url):
response = requests.get(url)
if response.status_code == 200:
return response.text
return None
def main():
url = 'http://maoyan.com/board/4'
html = get_one_page(url)
print(html)
main()
3.正则提取
网页在开发者模式下,network,查看源码
排名第一的霸王别姬的源码如下:
<dd>
<i class="board-index board-index-1">1</i>
<a href="/films/1203" title="霸王别姬" class="image-link" data-act="boarditem-click" data-val="{movieId:1203}">
<img src="//s3plus.meituan.net/v1/mss_e2821d7f0cfe4ac1bf9202ecf9590e67/cdn-prod/file:5788b470/image/loading_2.e3d934bf.png" alt="" class="poster-default" />
<img data-src="https://p1.meituan.net/movie/20803f59291c47e1e116c11963ce019e68711.jpg@160w_220h_1e_1c" alt="霸王别姬" class="board-img" />
</a>
<div class="board-item-main">
<div class="board-item-content">
<div class="movie-item-info">
<p class="name"><a href="/films/1203" title="霸王别姬" data-act="boarditem-click" data-val="{movieId:1203}">霸王别姬</a></p>
<p class="star">
主演:张国荣,张丰毅,巩俐
</p>
<p class="releasetime">上映时间:1993-01-01</p> </div>
<div class="movie-item-number score-num">
<p class="score"><i c