爬取豆瓣电影top250

1.爬取豆瓣电影top250

提示:仅供参考



前言

爬虫
都是最基础的,适合新手入门。


一、使用步骤

1. 爬虫代码(m_douban.py)

代码如下(示例):

import requests
from lxml import etree
import time
import csv
def download(args):
    headers={
        "User-Agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Mobile Safari/537.36"
    }
    for i in range(0,250,25):
        url = "https://movie.douban.com/top250?start={}&filter=".format(i)
        resp = requests.get(url,headers=headers)
        html = etree.HTML(resp.text)
        divs = html.xpath("/html/body/div[3]/div[1]/div/div[1]/ol/li")
        for div in divs:
            img_url= div.xpath("./div/div[1]/a/img/@src")[0] #封面图片所对应的url
            num=eval(div.xpath("./div/div[1]/em/text()")[0])#电影的序号 <class 'int'>
            img_name=div.xpath("./div/div[2]/div[1]/a/span[1]/text()")[0] #电影名称
            actor=div.xpath("./div/div[2]/div[2]/p/text()[1]")[0].strip()  #电影导演演员
            attribute=div.xpath("./div/div[2]/div[2]/p/text()[2]")[0].strip()   #电影属性
            score=eval(div.xpath("./div/div[2]/div[2]/div/span[2]/text()")[0]) #评分类型为<class 'float'>
            evaluate=eval(div.xpath("./div/div[2]/div[2]/div/span[4]/text()")[0].strip('人评价')) #评价人数为int类型
            shuzu=attribute.split('/')
            if '\xa0' not in shuzu[0]:
                year=1961
                nation='中国大陆'
                attribute_1='剧情 动画 奇幻 古装'
            else:
                year=eval(shuzu[0].strip('\xa0'))
                nation=shuzu[1].strip('\xa0')
                attribute_1=shuzu[2].strip('\xa0')
            if len(div.xpath("./div/div[2]/div[2]/p[2]/span")) == 0:
                Good_sentence="该电影没有好的句子"
            else:
                Good_sentence=div.xpath("./div/div[2]/div[2]/p[2]/span/text()")[0] #电影中的好句子
            #拼接电影名称字符串
            a=div.xpath("./div/div[2]/div[1]/a/span") 
            title=''
            for span in a:
                title_text=span.xpath("./text()")[0].strip()
                title=title+title_text
            img=requests.get(img_url)
            if args==0:
                #下载图片封面到上一级img_example目录下
                with open("img_example/"+img_name+".jpg",mode='wb')as p:
                    p.write(img.content)
            #将电影信息进行存储
            if args==1:
                f=open("douban.csv",mode="a",encoding="utf-8")
                csvwriter=csv.writer(f)
                csvwriter.writerow([num,title,img_url,actor,year,nation,attribute_1,score,evaluate,Good_sentence])
            print(num,title,img_url,actor,attribute,score,evaluate,Good_sentence)
            time.sleep(2)
    resp.close()
    print('over')
    download(1)#存储信息
    download(0)#存储图片




总结

提示:要在该文件的上一级目录新建一个文件夹命名为img_example,并新建一个文件douban.csv

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FZ小冰

请不要吝啬你手中的赞!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值