python爬虫爬取豆瓣TOP250用csv文件

一、爬取数据并用csv文件保存

import numpy as np
import requests
from lxml import etree
from time import sleep
import xlwt
import csv
url='https://movie.douban.com/top250'
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}
titles_cn = []
titles_en=[]
links = []
director=[]
actors=[]
years=[]
nations=[]
types=[]
scores=[]
rating_nums=[]

fp = open('./douban_top250.csv','w',encoding='utf-8')
writer = csv.writer(fp)
writer.writerow(
    ['电影中文名','电影英文名','电影详情页链接','导演','演员','上映年份','国际','类型','评分','评分人数']
)
for i in range(0,226,25):
    url = f'https://movie.douban.com/top250?start={i}&filter='
    data={
        'start':i,
        'filter':' ',
    }
    response = requests.get(url, headers=headers, data=data)
    sleep(1)
    #print(response, status_code)
    #print(response, encoding)
    #print(response.text)
    html = response.text
    data = etree.HTML(html)
    li_list=data.xpath('//*[@id="content"]/div/div[1]/ol/li')
    for each in li_list:
        title1=each.xpath('./div/div[2]/div[1]/a/span[1]/text()')[0]
        titles_cn.append(title1)
        title2=each.xpath('./div/div[2]/div[1]/a/span[2]/text()')[0].strip('\xa0/\xa0')
        titles_en.append(title2)
        link = each.xpath('./div/div[2]/div[1]/a/@href')[0]
        links.append(link)
        info1 = each.xpath('./div/div[2]/div[2]/p[1]/text()[1]')[0].strip()
        split_info1 = info1.split('\xa0\xa0\xa0')
        dirt = split_info1[0].strip('导演: ')
        director.append(dirt)
        if len(split_info1) == 2:
            ac = split_info1[1].strip('主演: ')
            actors.append(ac)
        else:
            actors.append(np.nan)

        info2 = each.xpath('./div/div[2]/div[2]/p[1]/text()[2]')[0].strip()
        split_info2 = info2.split('\xa0/\xa0')
        # print(split_info)
        year = split_info2[0]
        nation = split_info2[1]
        ftype = split_info2[2]
        years.append(year)
        nations.append(nation)
        types.append(ftype)


        score = each.xpath('./div/div[2]/div[2]/div/span[2]/text()')[0]
        scores.append(score)

        num = each.xpath('./div/div[2]/div[2]/div/span[4]/text()')[0].strip('人评价')
        rating_nums.append(num)

        writer.writerow([title1, title2, link, dirt, ac, year, nation, ftype, score, num])
    print(f'————————————第{int((i / 25) + 1)}页爬取完毕!——————————————')
fp.close()
print('------------------------------------------爬虫结束!---------------------------------------------')

相关推荐

  1. python爬虫豆瓣TOP250csv文件

    2024-06-11 21:24:03       7 阅读
  2. 使用爬虫豆瓣电影Top250(方法二)

    2024-06-11 21:24:03       7 阅读
  3. 使用爬虫豆瓣电影Top250(方法一)

    2024-06-11 21:24:03       10 阅读
  4. python scrapy 豆瓣电影top250教程2

    2024-06-11 21:24:03       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-11 21:24:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-11 21:24:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-11 21:24:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-11 21:24:03       18 阅读

热门阅读

  1. LINUX 查找文件

    2024-06-11 21:24:03       8 阅读
  2. C++中的解释器模式

    2024-06-11 21:24:03       9 阅读
  3. 乘船过河(ship)

    2024-06-11 21:24:03       8 阅读
  4. Canny边缘算法总结(基于C语言)

    2024-06-11 21:24:03       11 阅读
  5. Poco 使用 use关键字时的注意事项

    2024-06-11 21:24:03       10 阅读
  6. 数据仓库之拉链表

    2024-06-11 21:24:03       6 阅读
  7. 爬山算法介绍(极简)

    2024-06-11 21:24:03       10 阅读
  8. mysql安装配置教程(Linux+Windows)

    2024-06-11 21:24:03       10 阅读