分析
由于时光网中电影的票房、排名等大部分信息是通过Ajax异步加载的,所以,使用常规的静态网站抓取技术,
无法获取到这些信息。
要获取这些信息,必须从Ajax请求中查找。
先点开一个正在上映的电影 《前任3》
首先,找到是哪个Ajax请求用于获取这些信息
发现,以下url返回了所需要的数据
Ajax请求URL
http://service.library.mtime.com/Movie.api?Ajax_CallBack=true&Ajax_CallBackType=Mtime.Library.Services&Ajax_CallBackMethod=GetMovieOverviewRating&Ajax_CrossDomain=1&Ajax_RequestUrl=http%3A%2F%2Fmovie.mtime.com%2F230788%2F&t=201811115619396&Ajax_CallBackArgument0=230788
Ajax响应数据
var result_201811115619396 = { "value":{
"isRelease":true,"movieRating":{
"MovieId":230788,"RatingFinal":6.6,"RDirectorFinal":6.6,"ROtherFinal":6.9,"RPictureFinal":6.6,"RShowFinal":0,"RStoryFinal":6.4,"RTotalFinal":0,"Usercount":2209,"AttitudeCount":2184,"UserId":0,"EnterTime":0,"JustTotal":0,"RatingCount":0,"TitleCn":"","TitleEn":"","Year":"","IP":0},"movieTitle":"前任3:再见前任","tweetId":0,"userLastComment":"","userLastCommentUrl":"","releaseType":1,"boxOffice":{
"Rank":1,"TotalBoxOffice":"15.60","TotalBoxOfficeUnit":"亿","TodayBoxOffice":"2151.1","TodayBoxOfficeUnit":"万","ShowDays":14,"EndDate":"2018-01-11 15:10","FirstDayBoxOffice":"6413.11","FirstDayBoxOfficeUnit":"万"},"hotValue":{
"MovieId":230788,"Ranking":38,"Changing":8,"YesterdayRanking":46}},"error":null};