【无标题】

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

上一篇:python 爬取快手个人主页视频


下一篇:MVVM框架