爬虫:豆瓣top250+可视化图

发布于:2024-05-21 ⋅ 阅读:(120) ⋅ 点赞:(0)

原创文章,请勿转载!

仅供学习使用!需要源码联系博主(需要为知识付费)

一、说明

采集的数据字段:
    电影名称、导演、上映日期、评论、评价、国家、电影类型

可视化图:
    饼状图、柱状图

二、主要部分代码

        1.获取列表页的详情页id

            url = await self.base_url_queue.get()
            self.base_url_queue.task_done()
            async with session.get(url, headers=self.random_ua(url)) as response:
                text = await response.text()
                tree = etree.HTML(text)
                li_list = tree.xpath('//*[@id="content"]/div/div[1]/ol/li')  # 获取到当前页的所有url长度
                for li in range(1, len(li_list) + 1):
                    href = tree.xpath(f'//*[@id="content"]/div/div[1]/ol/li[{li}]/div/div[2]/div[1]/a/@href')[
                        0]  # 获取详情页的url地址
                    await self.detail_url_queue.put(href)

        2.获取详情页数据

             item['title'] = tree.xpath("//span[@property='v:itemreviewed']/text()")[0]  # 电影名称
                item['director'] = tree.xpath("//a[@rel='v:directedBy']/text()")[0]  # 导演
                item['date'] = '/'.join(tree.xpath("//span[@property='v:initialReleaseDate']/text()"))  # 上映日期
                item['comment-content'] = tree.xpath("//p[@class=' comment-content']/span[@class='short']/text()")  # 评论
                item['comment-count'] = tree.xpath("//span[@property='v:votes']/text()")[0]  # 评价
                item['country'] = tree.xpath('//span[text()="制片国家/地区:"]/following-sibling::text()[1]')[
                    0].strip()  # 国家
                item['movie-type'] = '/'.join(tree.xpath('//span[@property="v:genre"]/text()'))  # 电影类型

三、结果

        

学习交流QQ:450297392


网站公告

今日签到

点亮在社区的每一天
去签到