【Python爬虫】批量爬取豆瓣电影排行Top250

2023-09-22 13:58:57

        今天给大家分享下我刚开始接触Python时学习的爬虫程序,代码部分很简单,不过当时刚开始学习时还是走了不少弯路的。这个爬虫程序应该是很多书里面的入门练手程序,主要就是去豆瓣爬取电影评分排行前250。

        本篇文章只做学习交流使用,不涉及任何商业用途。如果有侵权请联系作者删除。大家在使用Python爬取信息时,请遵守该网站的相关守则和法律规定!!!

一、导入所需的库

import requests
import time
from bs4 import BeautifulSoup
# 导入requests,BeautifulSoup模块

二、完整代码

        由于代码过于简单,我这里就不分步去讲解了。如果大家对Python爬虫有兴趣可以自己去找一下资料或视频去学习。

# -*- coding: utf-8 -*-
"""
@Time : 2023/4/12 17:03
@Auth : RS迷途小书童
@File :短信轰炸.py
@IDE :PyCharm
"""
import requests
import time
from bs4 import BeautifulSoup
# 导入requests,BeautifulSoup模块
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0',
           'Host': 'movie.douban.com'}  # window10,火狐点击F12中的网络性能获取
print("\n")
for i in range(0, 10):
    # 爬取前10页电影列表
    url = 'https://movie.douban.com/top250?start='+str(i*25)
    # 实现翻页功能
    request = requests.get(url, headers=headers, timeout=10)  # timeout实现网页未返回值的情况
    soup = BeautifulSoup(request.text, "html.parser")  # 转换成BeautifulSoup类型
    title_lists = soup.find_all("div", class_="hd")  # 一页电影所有名字的代码(find_all输出的是列表)
    # print(title_lists)
    # div,class为标题的网页代码
    print('正在获取第%s页......' % (i+1))
    print("\n")
    for x in range(0, 25):  # 解析一页电影的名字,一页中有25个电影。(或者使用for title in range(len(title_list)))
        time.sleep(1)
        title_list = title_lists[x].a.text  # 解析find_all的列表数据,a表示标签<a>中的文字输出
        print("第%s部电影名字是:%s\n" % (x+1, title_list))
    print("第%s页已获取成功......\n\n" % (i+1))
    time.sleep(2)

三、总结

        一般在我们需要爬取网页时,第一件事就是去找到自己需要的信息对应网站的哪个标签以及网页的请求方式。然后就是爬虫的固定格式,请求头、解析啥的。上面的代码其实就很简单,不同的页码只是网址的最后发生了变化,所以套个循环就能用,而且我们需要的信息也只要通过F12就能直接查到。但有些网页可能会复杂一点,不能直接找到我们需要的信息或者需要验证什么的。这个大家就需要深入去学习一下爬虫的知识了,如反爬机制、多线程等。我平时用爬虫比较少,所以就不说太多了,以免误人子弟。

更多推荐

git详细教程

git详细教程区域划分单分支操作gitlog语法常用的参数及其详解gitlog结果gitrefloggitdiff常用的参数及其详解gitreset常用的参数及其详解gitcheckoutgitrm常用的参数及其详解gitremote常用的参数及其详解多分支切换代码融合gitswitch常用的参数及其详解gitbran

如何使用Java语言判断出geek是字符串参数类型,888是整数参数类型,[hello,world]是数组参数类型,2.5是双精度浮点数类型?

如何使用Java语言判断出geek是字符串参数类型,888是整数参数类型,[hello,world]是数组参数类型,2.5是双精度浮点数类型?Java是一种静态类型的编程语言,这意味着我们需要在编译时为变量指定具体的类型。但是,你可以使用instanceof关键字来检查某个对象是否属于某个特定类。以下是一个示例,用于检

Confidential Compute Architecture - Arm构架的TEE新模式

1简介如今,云计算在分布式计算资源按需使用方面起着重要的作用。许多公司,如亚马逊、谷歌或微软都提供云服务,但使用这些服务需要信任服务提供商。这意味着一方面依赖提供商对抗攻击者,但另一方面也要信任提供商本身。恶意的提供商可能最终滥用其客户的敏感数据。使用可信执行环境(TEE)可以帮助增加对提供商的信任。在传输过程中,通常

C++——string的模拟实现+详细讲解

文章目录迭代器构造函数拷贝构造函数赋值运算符重载函数析构函数获取字符串函数获取字符串的字符个数访问类对象中的成员实现对类对象中成员的访问和操作实现对类对象中的成员的常量访问字符串容量调整字符串大小调整尾部插入字符尾部插入字符串重载函数符+=字符串尾部添加字符字符串尾部添加字符串指定位置插入字符指定位置插入字符串删除指定

【数据结构】二叉树链式结构的实现(三)

目录一,二叉树的链式结构二,二叉链的接口实现1,二叉链的创建2,接口函数3,动态创立新结点4,创建二叉树5,前序遍历6,中序遍历7,后序遍历三,结点个数以及高度等1,接口函数2,结点个数3,叶子结点个数4,二叉树高度5,二叉树第k层结点个数6,二叉树查找值为x的结点一,二叉树的链式结构二叉树的链式存储结构是指,用链表来

CFimagehost私人图床本地部署结合cpolar内网穿透实现公网访问

文章目录1.前言2.CFImagehost网站搭建2.1CFImagehost下载和安装2.2CFImagehost网页测试2.3cpolar的安装和注册3.本地网页发布3.1Cpolar临时数据隧道3.2Cpolar稳定隧道(云端设置)3.3.Cpolar稳定隧道(本地设置)4.公网访问测试5.结语1.前言图片服务器

STC单片机定时器0手动状态脉冲定时器2自动状态脉冲加减速控制

/***定时器0中断运行函数判断电机运行为一启动输出***///ManuMTARUN_FLAG手动定时器电机A运行标志M_Speed//ManuMTBRUN_FLAG手动定时器电机B运行标志//a1=XAddSpeed;//X加速系数送缓冲器201845//b1=YAddSpeed;//Y加速系数送缓冲器201845v

C++学习(1)

一、C++概述(了解)C++在C语言的基础上添加了面向对象编程和泛型编程的支持二、helloword程序(掌握)#define_CET_SECURE_NO_WARNINGS//在开发软件visualstudio编译c文件时,visualstudio认为strcpy,scanf等函数不安全的导致报警告和错误,导致无法编译

CPP-Templates-2nd--第十一章 泛型库

目录11.1可调用对象(Callables)11.1.1函数对象的支持11.1.2处理成员函数以及额外的参数11.1.3函数调用的包装11.2其他一些实现泛型库的工具11.2.1类型萃取11.2.2std::addressoff()11.2.3std::declval()11.3完美转发临时变量11.4作为模板参数的引

NK试剂盒使用注意事项及NK细胞培养攻略

NK细胞自然杀伤细胞(Naturalkillercell,NK细胞),是除T细胞、B细胞之外的第三大类淋巴细胞,不表达T细胞和B细胞所特有的膜表面分子。无需抗原的预先刺激与活化即可直接杀伤被病毒感染的自身细胞或肿瘤细胞,与抗肿瘤、抗感染和免疫调节有关,是固有免疫最重要的组成成分之一。NK细胞大概约占外周血淋巴细胞的10

MongoDB性能分析

mongostatmongostat是mongdb自带的状态检测工具,在命令行下使用。它会间隔固定时间获取mongodb的当前运行状态,并输出。如果你发现数据库突然变慢或者有其他问题的话,你第一手的操作就考虑采用mongostat来查看mongo的状态。它的输出有以下几列:inserts/s:每秒插入次数query/s

热文推荐