Python爬取电影信息:Ajax介绍、爬取案例实战 + MongoDB存储

这篇具有很好参考价值的文章主要介绍了Python爬取电影信息:Ajax介绍、爬取案例实战 + MongoDB存储。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Ajax介绍

Ajax(Asynchronous JavaScript and XML)是一种用于在Web应用程序中实现异步通信的技术。它允许在不刷新整个网页的情况下,通过在后台与服务器进行数据交换,实时更新网页的一部分。Ajax的主要特点包括:

  1. 异步通信: Ajax是异步的,这意味着它可以在不阻塞用户界面的情况下进行通信。用户可以继续与网页交互,而不必等待服务器响应。

  2. 数据交换: Ajax允许在客户端和服务器之间交换数据,通常使用XML、JSON或其他数据格式。这使得网页能够实时加载、显示和更新数据,而无需完全重新加载整个页面。

  3. 无需页面刷新: 传统的Web应用程序通常在每次与服务器进行交互时都需要刷新整个页面。而Ajax可以仅刷新页面的一部分,从而提供更流畅的用户体验。

  4. 动态内容: Ajax使开发人员能够创建动态的、实时更新的网页内容,这些内容可以根据用户的操作和需求进行动态加载和修改。

  5. 多种用途: Ajax不仅可以用于加载数据,还可以用于提交表单、验证用户输入、自动完成搜索、实时聊天和其他许多Web应用程序中的交互性功能。

Ajax通常由以下几个核心组件组成:

  • XMLHttpRequest对象: 这是Ajax的核心,它允许JavaScript代码与服务器进行通信,发送HTTP请求并接收响应。现代Web开发中通常使用fetch API代替XMLHttpRequest,因为它更简单和强大。

  • 服务器端脚本: 服务器端需要提供接受Ajax请求的端点,并能够处理这些请求,执行相应的操作,并返回响应数据。

  • 异步事件处理: JavaScript代码需要能够在后台处理Ajax请求和响应,以确保不会阻塞用户界面。这通常涉及到使用回调函数或Promise来处理异步操作。

  • 数据格式: Ajax可以使用多种数据格式来交换信息,包括XML、JSON、HTML和纯文本等。

Ajax已经成为现代Web应用程序开发的重要组成部分,它提供了一种有效的方式来实现实时、交互性和动态性的用户体验。很多流行的Web应用程序和框架(如React、Angular和Vue.js)都使用Ajax来处理数据的加载和交互。通过Ajax,Web应用程序可以更好地响应用户的需求,提供更好的用户体验。

案列实战

在上篇文章基础上https://blog.csdn.net/rubyw/article/details/132714499?spm=1001.2014.3001.5501使用Ajax动态渲染页面爬取,并存储到本地mongo数据库中
网站链接:https://spa1.scrape.center

只看菜单XHR下的信息,观察页面变化时的情况

第一页
Python爬取电影信息:Ajax介绍、爬取案例实战 + MongoDB存储,爬虫,ajax,mongodb,nosql,python,网络爬虫Python爬取电影信息:Ajax介绍、爬取案例实战 + MongoDB存储,爬虫,ajax,mongodb,nosql,python,网络爬虫
详情页
Python爬取电影信息:Ajax介绍、爬取案例实战 + MongoDB存储,爬虫,ajax,mongodb,nosql,python,网络爬虫

# Ajax + MongoDB存储

import pymongo
import requests
import logging

logging.basicConfig(level=logging.INFO,
                    format='%(asctime)s - %(levelname)s: %(message)s')

INDEX_URL = 'https://spa1.scrape.center/api/movie/?limit={limit}&offset={offset}'

MONGO_CONNECTION_STRING = 'mongodb://localhost:27017'
MONGO_DB_NAME = 'movies'
MONGO_COLLECTION_NAME = 'movies'

client = pymongo.MongoClient(MONGO_CONNECTION_STRING)
db = client['movies']
collection = db['movies']

# 处理 JSON 接口
def scrape_api(url):
    logging.info('scraping %s...', url)
    try:
        response = requests.get(url)
        if response.status_code == 200:
            return response.json()
        else:
            logging.error('get invalid status code %s while scraping %s',
                      response.status_code, url)
        return None
    except requests.RequestException:
        logging.error('error occurred while scraping %s', url, exc_info=True)


LIMIT = 10


def scrape_index(page):
    url = INDEX_URL.format(limit=LIMIT, offset=LIMIT * (page - 1))
    return scrape_api(url)


DETAIL_URL = 'https://spa1.scrape.center/api/movie/{id}'


def scrape_detail(id):
    url = DETAIL_URL.format(id=id)
    return scrape_api(url)


TOTAL_PAGE = 10


def save_data(data):
    collection.update_one({
        'name': data.get('name')   # 根据name进行查询
    }, {
        '$set': data   # 表示更新操作
    }, upsert=True)   # 存在即更新,不存在即插入


def main():
    for page in range(1, TOTAL_PAGE + 1):
        index_data = scrape_index(page)
        for item in index_data.get('results'):
            id = item.get('id')
            detail_data = scrape_detail(id)
            logging.info('detail data %s', detail_data)
            save_data(detail_data)
            logging.info('data saved successfully')


if __name__ == '__main__':
    main()

可视化工具RoboMongo/Robo 3T,它使用简单,功能强大,官方网站为https://robomongo.org/,三大平台都支持,下载链接为https://robomongo.org/download。

最终在本地mongo数据库中可以看到最终爬取保存的结果:
Python爬取电影信息:Ajax介绍、爬取案例实战 + MongoDB存储,爬虫,ajax,mongodb,nosql,python,网络爬虫文章来源地址https://www.toymoban.com/news/detail-704269.html

到了这里,关于Python爬取电影信息:Ajax介绍、爬取案例实战 + MongoDB存储的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Python爬虫——urllib_ajax的get请求爬取豆瓣电影前十页

    ajax: 就是一段js代码,通过这段代码,可以让页面发送异步的请求,或者向服务器发送一个东西,即和服务器进行交互 对于ajax: 一定会有 url,请求方法(get, post),可能有数据 一般使用 json 格式 打开豆瓣电影,F12打开控制台(我这里是科幻类排行榜) 这是第一页 第二页 第

    2024年02月16日
    浏览(18)
  • Python爬虫案例分享【爬取豆瓣电影排行榜的电影名称和评分】

    注意:在运行此代码之前,请确保已安装 requests 和 beautifulsoup4 库

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

    从谷歌浏览器的开发工具进入 选择图片右键点击检查 ![在这里插入图片描述](https://img-blog.csdnimg.cn/1b38c2a942c441fb8cb545a28bb35015.png 翻页之后发现网址变化的只有start数值,每次变化值为30 Python代码 把爬取的图片全部放到新建的文件夹中存放

    2024年02月10日
    浏览(14)
  • Selenium Python 实战:爬取个股实时信息

    Selenium是广泛使用的开源Web UI(用户界面)自动化测试套件之一。支持Chrome, Edge, Firfox等常见浏览器。除用于web应用程序自动化测试外,Selenium 也适合用于抓取JavaScript 动态网页数据。 本文演示如何使用 Selenium python库编程来爬取个股数据。 用pip安装 selenium库 下载浏览器的驱动

    2024年01月23日
    浏览(15)
  • 异步请求库的实际应用案例:爬取豆瓣经典电影

    在日常爬虫过程中,你有没有遇到过需要爬取大量数据的情况,但是传统的同步请求方式让您等得焦头烂额? 这个问题的根源在于传统的同步请求方式。当我们使用同步请求时,程序会一直等待服务器的响应,直到数据返回后才能继续执行下一步操作。这种方式效率低下,尤

    2024年02月09日
    浏览(11)
  • 【爬虫系列】Python爬虫实战--招聘网站的职位信息爬取

    1. 需求分析 从网上找工作,大家一般都会通过各种招聘网站去检索相关信息,今天利用爬虫采集招聘网站的职位信息,比如岗位名称,岗位要求,薪资,公司名称,公司规模,公司位置,福利待遇等最为关心的内容。在采集和解析完成后,使用 Excel 或 csv 文件保存。 2. 目标

    2024年02月02日
    浏览(18)
  • 爬虫学习记录之Python 爬虫实战:爬取研招网招生信息详情

    【简介】本篇博客 为爱冲锋 ,爬取北京全部高校的全部招生信息,最后持久化存储为表格形式,可以用作筛选高校。 此处导入本次爬虫所需要的全部依赖包分别是以下内容,本篇博客将爬取研招网北京所有高校的招生信息,主要爬取内容为学校,考试方式,所在学院,专业

    2024年01月24日
    浏览(19)
  • 爬虫项目实战:利用基于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日
    浏览(13)
  • Python实战:使用selenium及BeautifulSoup4进行BOOS直聘信息爬取与数据累积【附源码】

    操作系统 :适用于Windows、macOS、Linux。 Python版本 :Python 3.6及以上。 依赖库 : selenium:用于模拟浏览器操作。 webdriver_manager:自动管理驱动程序。 BeautifulSoup4:解析HTML页面。 pandas:数据处理和CSV文件操作。 logging:日志记录。 本项目旨在通过Selenium模拟用户浏览器行为,获

    2024年04月27日
    浏览(12)
  • Python爬取豆瓣电影Top 250,豆瓣电影评分可视化,豆瓣电影评分预测系统

    博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w+、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟 2022-2024年最全的计算机软件毕业设计选

    2024年03月21日
    浏览(22)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包