爬取电影数据并保存至csv文件

image
url = 'https://ssr1.scrape.center/'
image

from parsel import Selector
import requests
import csv
import certifi

def get_page():
    # 翻页1-10页
    for i in range(1,11):
        url = f'https://ssr1.scrape.center/page/{i}'
        headers = {
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36'
        }
        # 1.发送请求
        response = requests.get(url,headers=headers,verify=certifi.where())
        # print(response.text)
        # 2.解析页面
        selector = Selector(response.text)
        # 3.获取所有div标签(根据class属性定位div标签),返回数据列表,列表里每一个元素都是selector对象
        name_list = selector.css('div[class="el-card item m-t is-hover-shadow"]')
        # print(name_list)
        # exit()
        for name in name_list:
            title = name.css('h2[class="m-b-sm"]::text').get()
            score = name.css('p[class="score m-t-md m-b-n-sm"]::text').get().strip()
            type = name.css('button[type="button"] span::text').getall()
            type_clean = "/".join(type)
            area = name.css('div[class="m-v-sm info"] span::text').getall()[0]
            year = name.css('div[class="m-v-sm info"] span::text').getall()[-1]
            # print(f"{title} {score} {type}")
            # break
            writer.writerow({"电影":title,"评分":score,"类型":type_clean,"制片地区":area,"上映年份":year})

def save_data():
    fieldname = ["电影","评分","类型","制片地区","上映年份"]
    global writer
    with open("center_movie.csv","w",encoding='utf-8-sig',newline='') as f:
        writer = csv.DictWriter(f,fieldname)
        writer.writeheader()   # 写入表头,省略会报错
        get_page()

if __name__ == '__main__':
    save_data()

"""
https://ssr1.scrape.center/page/1
https://ssr1.scrape.center/page/2
https://ssr1.scrape.center/page/3
"""

image

posted @ 2025-12-27 15:19  無心的Man  阅读(2)  评论(0)    收藏  举报