首页 > 编程语言 >【Python爬虫】批量爬取豆瓣电影排行Top250

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

时间:2023-09-22 14:12:39浏览次数:40  
标签:title Python 爬虫 BeautifulSoup 爬取 print import Top250

        今天给大家分享下我刚开始接触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就能直接查到。但有些网页可能会复杂一点,不能直接找到我们需要的信息或者需要验证什么的。这个大家就需要深入去学习一下爬虫的知识了,如反爬机制、多线程等。我平时用爬虫比较少,所以就不说太多了,以免误人子弟。

标签:title,Python,爬虫,BeautifulSoup,爬取,print,import,Top250
From: https://www.cnblogs.com/RSran/p/17722184.html

相关文章

  • python中,如何优雅的解析和管理命令行参数
    背景我们在编写python程序时,程序中经常会提供多种功能或者模式,在实际使用时根据不同的参数使用不同的功能。那么如何获取命令行传入进来的参数呢?一般方法一般情况下,我们会使用sys模块,如......
  • [885] How to generate automated tables in Word document with Python
    ref:HowtoGenerateAutomatedWordDocumentswithPythonref:docxtpl快速上手使用,数据填入以及循环写入表格CreatingaTemplateBeforeyoucanproceed,youmustfirstcreateyourveryowntemplatedocumentthatisbasicallyanormalMicrosoftWordDocument......
  • [884] How to generate automated Word documents by Python
    ref:python-docxref:HowtoGenerateAutomatedWordDocumentswithPythonref:AutomatingWordDocumentsfromExcelUsingPython|‘docxtpl’Tutorialref:docxtpl快速上手使用,数据填入以及循环写入表格ref:探究Python中的文档自动化工具——docxtplref:Python......
  • 在线问诊 Python、FastAPI、Neo4j — 创建 节点关系
    目录关系:症状-检查关系:疾病-症状代码重构relationship_data.csv症状,检查,疾病,药品,宜吃,忌吃"上下楼梯疼,不能久站,感觉有点肿","膝关节核磁","右膝髌上囊及关节腔少量积液","扶他林","西红柿,香蕉","辣椒,大蒜""眼睛胀痛,干涩,畏光,眼胀,眼痛,看东西有时候清楚有时候不清楚......
  • 【Python深度学习】深度学习中框架和模型的区别
        深度学习是人工智能领域的一股强大力量,它的快速发展离不开深度学习框架和模型的进步。本文将介绍深度学习框架和模型的基本概念、它们之间的联系与区别,以及如何根据项目需求选择合适的框架和模型。一、深度学习框架        深度学习框架是进行深度学习研......
  • 已解决The following specifications were found to be incompatible with the existi
    已解决Thefollowingspecificationswerefoundtobeincompatiblewiththeexistingpythoninstallation文章目录报错问题解决方法PS报错问题之前在工作中遇到过这个坑,记录一下问题以及解决方法,不一定针对所有情况都能用,但是可以供大家参考。问题描述如下:UnsatisfiableErr......
  • 已解决tensorflow.python.framework.errors_impl.InvalidArgumentError: slice index
    已解决tensorflow.python.framework.errors_impl.InvalidArgumentError:sliceindex1ofdimension0outofbounds.文章目录报错问题解决方法声明报错问题之前在工作中遇到过这个坑,记录一下问题以及解决方法,不一定针对所有情况都能用,但是可以供大家参考。问题描述如下:tensor......
  • python 打印功能测试程序 2
    #python打印功能测试程序fromCDHTMLTableimportHTMLTablefromPySide2.QtCoreimportQRect,QPoint,QSize,QtfromPySide2.QtGuiimportQImage,QIcon,QPixmap,QPainter,QTextDocumentfromPySide2.QtWidgetsimportQApplication,QMainWindow,QLabel,QSizeP......
  • Python Pywavelet 小波阈值
    https://blog.csdn.net/Dax1n/article/details/70304316https://buildmedia.readthedocs.org/media/pdf/pywavelets/stable/pywavelets.pdf 5.2.14节......
  • multiprocessing:Python像线程一样管理进程
    前言multiprocessing库是基于threadingAPI,它可以把工作划分为多个进程。有些情况下,multiprocessing可以作为临时替换取代threading来利用多个CPU内核,相应地避免Python全局解释器锁所带来的计算瓶颈。下面,我们来看看multiprocessing库创建进程与threading库有多像。创建一个进......