python爬虫--爬取-猫眼电影-代码

    xiaoxiao2025-07-13  17

    import re import requests class Mao(): def __call__(self, *args, **kwargs): """ 当前类的对象当做函数使用的时候触发 """ self.run() def run(self): #获取,猫眼HTML base_url="https://maoyan.com/board" response=requests.get(base_url) html=response.text # print(html) self.get_data(html) def get_data(self,html): #缩小范围,获取dd的信息 #换行不能用.*? re.S可以使\n转换为普通字符。.*?就可以匹配到\n dd_list=re.findall('<dd>([\s\S]*?)</dd>',html) print(dd_list[0]) #循环获取dd中的电影信息 for dd in dd_list: # print(dd) #获取排名 rank=re.findall('<i class="board-index board-index-\d+">(\d+)</i>',dd)[0] # print(rank) #获取电影名称 name=re.findall('title="(.*?)" class="image-link"',dd)[0] # print(name) #获取主演信息: actor=re.findall('<p class="star">([\d\D]*?)</p>',dd)[0] if "主演" not in actor: actor='' else: #去掉两边的空格 actor=actor.strip() # print(actor) #获取上映日期 publish_data=re.findall('<p class="releasetime">上映时间:(.*?)</p>',dd)[0] # print(publish_data) #评分信息 score_match=re.search('<p class="score"><i class="integer">(.*?)</i><i class="fraction">(\d)</i></p>',dd) score=score_match.group(1)+score_match.group(2) # print(score) #获取图片信息,浏览器获取到的信息和代码获取到的信息有时候不一样 #以代码获取到的为准。在获取图片的过程当中,优先获取大图 picture=re.findall('data-src="(.*?)@160w_220h_1e_1c"',dd)[0] # print(picture) #将电影信息存入字典中 movie_dict={ "rank":rank, "name":name, "actor":actor, "publish_data":publish_data, "score":score, "picture":picture, } print(movie_dict) if __name__ == '__main__': mao=Mao() mao()
    最新回复(0)