豆瓣电影top250

暑假又来了,看电视剧?多浪费时间,何不回味经典呢,对吧,下面和大家一起爬取豆瓣250.相信这应该是和我一样的小白必走过的路吧,没有什么反爬,很适合我这样的小白,所有网站都这样多好(狗头)哈哈。
下面先看爬取的结果吧
在这里插入图片描述
感觉提取发行时间,发行国家,和电影类型的可能不像电影名那样直接。
直接上代码吧

import requests
import parsel
import re
import time
for page in range(10):
    print('**********************正在爬取第{}页************************'.format(str(page+1)))
    base_url='https://movie.douban.com/top250?start={}&filter='.format(str(page))
    headers={'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36'}
    response=requests.get(base_url,headers=headers)
    #print(response)
    response.encoding=response.apparent_encoding
    selector=parsel.Selector(response.text)
    lis=selector.xpath('//ol[@class="grid_view"]/li')
    #print(len(lis))
    for li in lis:
        title=li.xpath('.//span[@class="title"]/text()').get()
        #print(title)
        star=li.xpath('.//div[@class="bd"]/p[1]/text()').get().strip()
        #print(star)
        relaetime=li.xpath('.//div[@class="bd"]/p[1]').re('\d{4}')[0]
        #print(relaetime)
        score=li.xpath('.//span[@class="rating_num"]/text()').get()
        #print(score)
        guojia=li.xpath('.//div[@class="bd"]/p').get()
        guojia=guojia.split('<br>')[1]
        nation=re.findall(' \d{4}.*?/.*?(.*?)/.*?(.*?)</p>',guojia,re.S)[0][0]
        type=re.findall(' \d{4}.*?/.*?(.*?)/.*?(.*?)</p>',guojia,re.S)[0][1].strip()
        #print(nation,type)

        with open('电影.csv',mode='a',encoding='utf-8')as f:
            f.write(f'{title},{relaetime},{score},{nation},{type},{star}')
            f.write('\n')
    print('¥¥¥¥¥¥¥¥¥¥¥¥¥¥第{}页爬取成功¥¥¥¥¥¥¥¥¥¥¥¥¥¥'.format(str(page+1)))
    time.sleep(3)

嘿嘿,祝大家有个愉快的暑假。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值