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

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('
([\s\S]*?)
',html) print(dd_list[0]) #循环获取dd中的电影信息 for dd in dd_list: # print(dd) #获取排名 rank=re.findall('(\d+)',dd)[0] # print(rank) #获取电影名称 name=re.findall('title="(.*?)" class="image-link"',dd)[0] # print(name) #获取主演信息: actor=re.findall('

([\d\D]*?)

',dd)[0] if "主演" not in actor: actor='' else: #去掉两边的空格 actor=actor.strip() # print(actor) #获取上映日期 publish_data=re.findall('

上映时间:(.*?)

',dd)[0] # print(publish_data) #评分信息 score_match=re.search('

(.*?)(\d)

',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()

你可能感兴趣的:(爬虫,爱好)