python爬取豆瓣电影排行前250获取电影名称和网络链接[静态网页]————爬虫实例(1)

这篇具有很好参考价值的文章主要介绍了python爬取豆瓣电影排行前250获取电影名称和网络链接[静态网页]————爬虫实例(1)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.算法原理:

2.程序流程:

3.程序代码:

4.运行结果(部分结果展示):

5.结果分析:


1.算法原理:

(1)利用import命令导入模块或者导入模块中的对象;

①利用requests库获取数据;

②用BeautifulSoup库将网页源代码转换成BeautifulSoup类型,以便于数据的解析和处理;

③用time库进行时间延时,避免访问速度过快被封禁(封禁后会一段时间内无法进行对网址的访问);

(2)利用resquests.get()获取的数据,其中第一个参数为网页链接,第二个参数为请求头Headers,返回的数据类型为字符串类型网页源代码;

(3)利用BeautifuSoup()命令将获取的网页源代码转化为BeautifuSoup对象,第一个参数为要解析的HTML文本,即网页源代码,第二个参数为解析HTML的解析器;

(4)利用CSS选择器,找到我们所需要的数据,在CSS选择器中,“#”表示id,“.”表示class;

(5)tag(标签)对象的常用属性/方法

属性/方法 作用
tag.find() 返回符合条件的首个数据
tag.find_all() 返回符合条件的所有数据
tag.text 获取标签的文本内容
tag['属性名'] 获取标签HTML属性的值

例如:

python爬取豆瓣电影排行前250获取电影名称和网络链接[静态网页]————爬虫实例(1)

(6)字符串的format格式:<模板字符串>.format(<以逗号分隔的参数>),format()中参数和前面的{}顺序一 一对应例如:

print('我是{},来自{}。'.format('小浪','中国'))

也可以在{}中加入序号,format()括号中类似列表进行读取,序号对应列表的下标,例如:

print('我是{1},来自{0}。'.format('中国','小浪'))

也可以给占位符{}命名,例如:

print('我是{name},来自{country}。'.format(country='中国',name='小浪'))

以上三种都输出:我是小浪,来自中国。

2.程序流程:

(1)利用import导入第三方库requests,time和bs4库中的BeautifulSoup;

(2)创建get_film函数,形参为变量link(用于传入网址,因为每页只有25部电影,爬取250部,每个网页链接末尾的查询字符串会有所不同)

(3)为了应对反爬虫机制,这里修改请求头,将网页中User-Agent字段定义为字典,传入requests.get()命令中,赋值给变量res(当然,也有其他的方法,比如通过别的IP访问网站,具体请自己查看requests的官方文档:https://cn.python-requests.org/zh_CN/latest/);

①: 打开豆瓣电影top250排行版,右击(以搜狗浏览器为例)--->审查元素,点击方块内图标python爬取豆瓣电影排行前250获取电影名称和网络链接[静态网页]————爬虫实例(1)

 ②:随便点击一个电影名,以《肖申克的救赎》为例,网页加载完毕点击Network标签,里面可能为空的,刷新一下网页就好了。点击Network——>name中第一个标签——>找到Requests Headers标签——>找到User-Agent字段。

python爬取豆瓣电影排行前250获取电影名称和网络链接[静态网页]————爬虫实例(1)

python爬取豆瓣电影排行前250获取电影名称和网络链接[静态网页]————爬虫实例(1)

 (4)将res.text(源代码的字符串格式)传给BeautifulSoup命令,并且用Python内置的解析器html.parser,赋值给变量soup;

 (5)利用CSS选择器找到标签为div,class="hd"的所有元素(随便点击一部电影名称,以《肖申克的救赎》为例,观察到的规律为电影链接、电影名分布在标签为:div,class="hd"的标签“a”中),传入soup.select()命令中,赋值给item

python爬取豆瓣电影排行前250获取电影名称和网络链接[静态网页]————爬虫实例(1)

 (6)遍历item中的所有元素,观察发现链接在标签a中的href属性中,电影名在标签a中第一个标签span的文本中,此时用find命令可以找到第一个符合条件的元素,找到第一个标签其中的文本内容,并输出电影名和电影链接;

python爬取豆瓣电影排行前250获取电影名称和网络链接[静态网页]————爬虫实例(1)

(7)观察豆瓣10页的网页链接(每页25个电影,其实就观察几页就可以发现规律):

https://movie.douban.com/top250?start=0&filter=(第一页,从一开始网页打开没有问号后的查询字符串,从其他页跳到第一页就有了,第一页带查询字符串和不带查询字符串打开内容相同)

https://movie.douban.com/top250?start=25&filter=(第二页)

https://movie.douban.com/top250?start=50&filter=(第三页)

通过以上三个网页链接的对比发现,只有start后面的发生了改变,那么就可以利用字符串的format格式,进行创建字符串列表link_all

(8)遍历10页网页,传入之前建立的函数get_film,利用time.sleep()进行延时爬取,防止访问速度过快被对方服务器封禁。

3.程序代码:

import requests
import time
from bs4 import BeautifulSoup

def get_film(link):
    headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0'}
    res=requests.get(link,headers=headers)

    soup=BeautifulSoup(res.text,'html.parser')
    items=soup.select('div.hd a')
    for i in items:
        name=i.find('span').text
        link_film=i['href']
        print('电影名:',name,'网址:',link_film)

l='https://movie.douban.com/top250?start={}&filter='
link_all=[l.format(i*25) for i in range(10)]
for i in range(10):
    get_film(link_all[i])
    time.sleep(1)

4.运行结果(部分结果展示):

python爬取豆瓣电影排行前250获取电影名称和网络链接[静态网页]————爬虫实例(1)

5.结果分析:

     程序获取的结果与预期结果相同,在找到电影名的过程中可以使用find和find_all命令,可以不使用CSS选择器,也可以将电影名存到txt文档,或者excel文档中,便于储存。此程序仅演示豆瓣电影名、电影网络链接,其他静态网页也可通过此方法进行爬取。文章来源地址https://www.toymoban.com/news/detail-415693.html

到了这里,关于python爬取豆瓣电影排行前250获取电影名称和网络链接[静态网页]————爬虫实例(1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python爬虫小练习——爬取豆瓣电影top250

    将爬取的数据导入到表格中,方便人为查看。 三大功能 1,下载所有网页内容。 2,处理网页中的内容提取自己想要的数据 3,导入到表格中 https://www.bilibili.com/video/BV1CY411f7yh/?p=15

    2024年01月17日
    浏览(32)
  • Python爬虫实战-批量爬取豆瓣电影排行信息

    大家好,我是python222小锋老师。 近日锋哥又卷了一波Python实战课程-批量爬取豆瓣电影排行信息,主要是巩固下Python爬虫基础 视频版教程: Python爬虫实战-批量爬取豆瓣电影排行信息 视频教程_哔哩哔哩_bilibili Python爬虫实战-批量爬取豆瓣电影排行信息 视频教程作者:小锋老师

    2024年02月05日
    浏览(34)
  • python爬虫——爬取豆瓣top250电影数据(适合初学者)

    爬取豆瓣top250其实是初学者用于练习和熟悉爬虫技能知识的简单实战项目,通过这个项目,可以让小白对爬虫有一个初步认识,因此,如果你已经接触过爬虫有些时间了,可以跳过该项目,选择更有挑战性的实战项目来提升技能。当然,如果你是小白,这个项目就再适合不过

    2024年02月07日
    浏览(61)
  • Python网页爬虫爬取豆瓣Top250电影数据——Xpath数据解析

    1.1 查看原页面信息 首先打开豆瓣Top250电影页面,其网址是:https://movie.douban.com/top250。 可以发现,该页面展示的电影信息有中英文电影名、导演、主演、上映年份、国籍、电影类型、评分等。 下滑到页面底部,发现第一页有25部电影的数据,并且可以点击页码数实现页面跳转

    2024年02月05日
    浏览(37)
  • [Python练习]使用Python爬虫爬取豆瓣top250的电影的页面源码

    在终端中输入以下代码(直接在cmd命令提示符中,不需要打开Python) 从豆瓣网提供的镜像网站下载requests第三方库 是从国外网站下载,速度慢甚至有时候无法下载 运行代码之后,没反应,无输出结果 可以看一下返回的页面请求状态码是多少: 状态码是 418 ,所有4开头的状态

    2024年01月17日
    浏览(32)
  • 爬虫项目实战:利用基于selenium框架的爬虫模板爬取豆瓣电影Top250

    👋 Hi, I’m @货又星 👀 I’m interested in … 🌱 I’m currently learning … 💞 I’m looking to collaborate on … 📫 How to reach me … README 目录(持续更新中) 各种错误处理、爬虫实战及模板、百度智能云人脸识别、计算机视觉深度学习CNN图像识别与分类、PaddlePaddle自然语言处理知识图谱、

    2024年02月04日
    浏览(31)
  • 爬虫入门指南(7):使用Selenium和BeautifulSoup爬取豆瓣电影Top250实例讲解【爬虫小白必看】

    在本篇博客中,我们将使用 Python 的 Selenium 和 BeautifulSoup 库来实现一个简单的网页爬虫,目的是爬取豆瓣电影TOP250的数据,并将结果保存到Excel文件中。 Selenium 是一个自动化测试工具,可以模拟用户在浏览器中的交互操作。我们将使用 Selenium 来打开网页、获取网页源码。 B

    2024年02月12日
    浏览(32)
  • 爬取豆瓣Top250图书数据

    项目的实现步骤 1.项目结构 2.获取网页数据 3.提取网页中的关键信息 4.保存数据 1.项目结构 2.获取网页数据 对应的网址为https://book.douban.com/top250 3.提取网页中的关键信息 获取传出的解析后的数据,获取对应的图片,书名,作者,价格,评价,简介 将获取的数据存入到字典中

    2024年02月08日
    浏览(26)
  • Python爬虫:一个爬取豆瓣电影人像的小案例

    从谷歌浏览器的开发工具进入 选择图片右键点击检查 翻页之后发现网址变化的只有start数值,每次变化值为30 Python代码 把爬取的图片全部放到新建的文件夹中存放

    2024年02月10日
    浏览(47)
  • 【Python】爬虫练习-爬取豆瓣网电影评论用户的观影习惯数据

    目录 前言 一、配置环境 1.1、 安装Python 1.2、 安装Requests库和BeautifulSoup库 1.3.、安装Matplotlib 二、登录豆瓣网(重点) 2.1、获取代理 2.2、测试代理ip是否可用 2.3、设置大量请求头随机使用 2.4、登录豆瓣网 三、爬取某一部热门电影数据 3.1、爬取全部长、短评论 3.2、获取用户

    2024年02月09日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包