欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python爬取豆瓣电影评分Top250

程序员文章站 2022-06-22 08:35:33
Python爬取豆瓣电影评分Top250抓取第一页的电影信息抓取信息如下:上一节已经学习过了,不是问题,重点在如何抓取下一页面的信息,使250个电影信息全部收集到。多页抓取,搜集完整250部电影信息代码写法根据每个网页的特点不同而不同,发现豆瓣网页翻页是通过/top250?start=xxx&filter= 更改xxx的值实现的,不像某些网站采用异步操作。那写一个while循环即可。源码如下:import requestsfrom lxml import etreeprint...

Python爬取豆瓣电影评分Top250

抓取第一页的电影信息

Python爬取豆瓣电影评分Top250
抓取信息如下:
Python爬取豆瓣电影评分Top250
上一节已经学习过了 —>这是传送门
本节重点在如何抓取下一页面的信息,使250个电影信息全部收集到。

多页抓取,搜集完整250部电影信息

代码写法根据每个网页的特点不同而不同,发现豆瓣网页翻页是通过/top250?start=xxx&filter= 更改xxx的值实现的,不像某些网站采用异步操作。那写一个while循环即可。源码如下:

import requests
from lxml import etree

print("豆瓣年度电影信息")
print("--------------")
num = 0
while num <=225:
    url='https://movie.douban.com/top250?start='+str(num)+'&filter='
    header = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'
    }
    response=requests.get(url,headers = header)
    #print(response.status_code)
    #print(response.text)

    obj = etree.HTML(response.text)
    #print(obj)
    item = obj.xpath('.//ol[@class="grid_view"]/li')
    #print(len(item))
    for i in item:
        try:
            title=i.xpath('./div/div[2]/div[@class="hd"]/a/span[1]')[0].text
            print(title)
        except:
            pass
        try:
            score=i.xpath('./div/div[2]/div[@class="bd"]/div/span[2]')[0].text
            print("评分:",score)
        except:
            pass
        try:
            comment=i.xpath('./div/div[2]/div[@class="bd"]/p[@class="quote"]/span')[0].text
            print(comment)
        except:
            pass
        print("-------------------")
    num = num+25

运行截图:
Python爬取豆瓣电影评分Top250
信息存在格式不匹配的地方。比如《九品芝麻官》是没有简介的,这个时候异常抛出就好了。
Python爬取豆瓣电影评分Top250

本文地址:https://blog.csdn.net/qq_46157589/article/details/107221635