国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python爬取電影信息:Ajax介紹、爬取案例實戰(zhàn) + MongoDB存儲

這篇具有很好參考價值的文章主要介紹了Python爬取電影信息:Ajax介紹、爬取案例實戰(zhàn) + MongoDB存儲。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Ajax介紹

Ajax(Asynchronous JavaScript and XML)是一種用于在Web應(yīng)用程序中實現(xiàn)異步通信的技術(shù)。它允許在不刷新整個網(wǎng)頁的情況下,通過在后臺與服務(wù)器進(jìn)行數(shù)據(jù)交換,實時更新網(wǎng)頁的一部分。Ajax的主要特點包括:

  1. 異步通信: Ajax是異步的,這意味著它可以在不阻塞用戶界面的情況下進(jìn)行通信。用戶可以繼續(xù)與網(wǎng)頁交互,而不必等待服務(wù)器響應(yīng)。

  2. 數(shù)據(jù)交換: Ajax允許在客戶端和服務(wù)器之間交換數(shù)據(jù),通常使用XML、JSON或其他數(shù)據(jù)格式。這使得網(wǎng)頁能夠?qū)崟r加載、顯示和更新數(shù)據(jù),而無需完全重新加載整個頁面。

  3. 無需頁面刷新: 傳統(tǒng)的Web應(yīng)用程序通常在每次與服務(wù)器進(jìn)行交互時都需要刷新整個頁面。而Ajax可以僅刷新頁面的一部分,從而提供更流暢的用戶體驗。

  4. 動態(tài)內(nèi)容: Ajax使開發(fā)人員能夠創(chuàng)建動態(tài)的、實時更新的網(wǎng)頁內(nèi)容,這些內(nèi)容可以根據(jù)用戶的操作和需求進(jìn)行動態(tài)加載和修改。

  5. 多種用途: Ajax不僅可以用于加載數(shù)據(jù),還可以用于提交表單、驗證用戶輸入、自動完成搜索、實時聊天和其他許多Web應(yīng)用程序中的交互性功能。

Ajax通常由以下幾個核心組件組成:

  • XMLHttpRequest對象: 這是Ajax的核心,它允許JavaScript代碼與服務(wù)器進(jìn)行通信,發(fā)送HTTP請求并接收響應(yīng)?,F(xiàn)代Web開發(fā)中通常使用fetch API代替XMLHttpRequest,因為它更簡單和強(qiáng)大。

  • 服務(wù)器端腳本: 服務(wù)器端需要提供接受Ajax請求的端點,并能夠處理這些請求,執(zhí)行相應(yīng)的操作,并返回響應(yīng)數(shù)據(jù)。

  • 異步事件處理: JavaScript代碼需要能夠在后臺處理Ajax請求和響應(yīng),以確保不會阻塞用戶界面。這通常涉及到使用回調(diào)函數(shù)或Promise來處理異步操作。

  • 數(shù)據(jù)格式: Ajax可以使用多種數(shù)據(jù)格式來交換信息,包括XML、JSON、HTML和純文本等。

Ajax已經(jīng)成為現(xiàn)代Web應(yīng)用程序開發(fā)的重要組成部分,它提供了一種有效的方式來實現(xiàn)實時、交互性和動態(tài)性的用戶體驗。很多流行的Web應(yīng)用程序和框架(如React、Angular和Vue.js)都使用Ajax來處理數(shù)據(jù)的加載和交互。通過Ajax,Web應(yīng)用程序可以更好地響應(yīng)用戶的需求,提供更好的用戶體驗。

案列實戰(zhàn)

在上篇文章基礎(chǔ)上https://blog.csdn.net/rubyw/article/details/132714499?spm=1001.2014.3001.5501使用Ajax動態(tài)渲染頁面爬取,并存儲到本地mongo數(shù)據(jù)庫中
網(wǎng)站鏈接:https://spa1.scrape.center

只看菜單XHR下的信息,觀察頁面變化時的情況

第一頁
Python爬取電影信息:Ajax介紹、爬取案例實戰(zhàn) + MongoDB存儲,爬蟲,ajax,mongodb,nosql,python,網(wǎng)絡(luò)爬蟲Python爬取電影信息:Ajax介紹、爬取案例實戰(zhàn) + MongoDB存儲,爬蟲,ajax,mongodb,nosql,python,網(wǎng)絡(luò)爬蟲
詳情頁
Python爬取電影信息:Ajax介紹、爬取案例實戰(zhàn) + MongoDB存儲,爬蟲,ajax,mongodb,nosql,python,網(wǎng)絡(luò)爬蟲

# 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')   # 根據(jù)name進(jìn)行查詢
    }, {
        '$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,它使用簡單,功能強(qiáng)大,官方網(wǎng)站為https://robomongo.org/,三大平臺都支持,下載鏈接為https://robomongo.org/download。

最終在本地mongo數(shù)據(jù)庫中可以看到最終爬取保存的結(jié)果:
Python爬取電影信息:Ajax介紹、爬取案例實戰(zhàn) + MongoDB存儲,爬蟲,ajax,mongodb,nosql,python,網(wǎng)絡(luò)爬蟲文章來源地址http://www.zghlxwxcb.cn/news/detail-704269.html

到了這里,關(guān)于Python爬取電影信息:Ajax介紹、爬取案例實戰(zhàn) + MongoDB存儲的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Python爬蟲——urllib_ajax的get請求爬取豆瓣電影前十頁

    Python爬蟲——urllib_ajax的get請求爬取豆瓣電影前十頁

    ajax: 就是一段js代碼,通過這段代碼,可以讓頁面發(fā)送異步的請求,或者向服務(wù)器發(fā)送一個東西,即和服務(wù)器進(jìn)行交互 對于ajax: 一定會有 url,請求方法(get, post),可能有數(shù)據(jù) 一般使用 json 格式 打開豆瓣電影,F(xiàn)12打開控制臺(我這里是科幻類排行榜) 這是第一頁 第二頁 第

    2024年02月16日
    瀏覽(25)
  • Python爬蟲案例分享【爬取豆瓣電影排行榜的電影名稱和評分】

    注意:在運(yùn)行此代碼之前,請確保已安裝 requests 和 beautifulsoup4 庫

    2024年01月19日
    瀏覽(34)
  • Python爬蟲:一個爬取豆瓣電影人像的小案例

    Python爬蟲:一個爬取豆瓣電影人像的小案例

    從谷歌瀏覽器的開發(fā)工具進(jìn)入 選擇圖片右鍵點擊檢查 翻頁之后發(fā)現(xiàn)網(wǎng)址變化的只有start數(shù)值,每次變化值為30 Python代碼 把爬取的圖片全部放到新建的文件夾中存放

    2024年02月10日
    瀏覽(88)
  • Selenium Python 實戰(zhàn):爬取個股實時信息

    Selenium Python 實戰(zhàn):爬取個股實時信息

    Selenium是廣泛使用的開源Web UI(用戶界面)自動化測試套件之一。支持Chrome, Edge, Firfox等常見瀏覽器。除用于web應(yīng)用程序自動化測試外,Selenium 也適合用于抓取JavaScript 動態(tài)網(wǎng)頁數(shù)據(jù)。 本文演示如何使用 Selenium python庫編程來爬取個股數(shù)據(jù)。 用pip安裝 selenium庫 下載瀏覽器的驅(qū)動

    2024年01月23日
    瀏覽(30)
  • 異步請求庫的實際應(yīng)用案例:爬取豆瓣經(jīng)典電影

    異步請求庫的實際應(yīng)用案例:爬取豆瓣經(jīng)典電影

    在日常爬蟲過程中,你有沒有遇到過需要爬取大量數(shù)據(jù)的情況,但是傳統(tǒng)的同步請求方式讓您等得焦頭爛額? 這個問題的根源在于傳統(tǒng)的同步請求方式。當(dāng)我們使用同步請求時,程序會一直等待服務(wù)器的響應(yīng),直到數(shù)據(jù)返回后才能繼續(xù)執(zhí)行下一步操作。這種方式效率低下,尤

    2024年02月09日
    瀏覽(17)
  • 【爬蟲系列】Python爬蟲實戰(zhàn)--招聘網(wǎng)站的職位信息爬取

    【爬蟲系列】Python爬蟲實戰(zhàn)--招聘網(wǎng)站的職位信息爬取

    1. 需求分析 從網(wǎng)上找工作,大家一般都會通過各種招聘網(wǎng)站去檢索相關(guān)信息,今天利用爬蟲采集招聘網(wǎng)站的職位信息,比如崗位名稱,崗位要求,薪資,公司名稱,公司規(guī)模,公司位置,福利待遇等最為關(guān)心的內(nèi)容。在采集和解析完成后,使用 Excel 或 csv 文件保存。 2. 目標(biāo)

    2024年02月02日
    瀏覽(29)
  • 爬蟲學(xué)習(xí)記錄之Python 爬蟲實戰(zhàn):爬取研招網(wǎng)招生信息詳情

    爬蟲學(xué)習(xí)記錄之Python 爬蟲實戰(zhàn):爬取研招網(wǎng)招生信息詳情

    【簡介】本篇博客 為愛沖鋒 ,爬取北京全部高校的全部招生信息,最后持久化存儲為表格形式,可以用作篩選高校。 此處導(dǎo)入本次爬蟲所需要的全部依賴包分別是以下內(nèi)容,本篇博客將爬取研招網(wǎng)北京所有高校的招生信息,主要爬取內(nèi)容為學(xué)校,考試方式,所在學(xué)院,專業(yè)

    2024年01月24日
    瀏覽(26)
  • 爬蟲項目實戰(zhàn):利用基于selenium框架的爬蟲模板爬取豆瓣電影Top250

    爬蟲項目實戰(zhàn):利用基于selenium框架的爬蟲模板爬取豆瓣電影Top250

    ?? Hi, I’m @貨又星 ?? I’m interested in … ?? I’m currently learning … ?? I’m looking to collaborate on … ?? How to reach me … README 目錄(持續(xù)更新中) 各種錯誤處理、爬蟲實戰(zhàn)及模板、百度智能云人臉識別、計算機(jī)視覺深度學(xué)習(xí)CNN圖像識別與分類、PaddlePaddle自然語言處理知識圖譜、

    2024年02月04日
    瀏覽(32)
  • Python實戰(zhàn):使用selenium及BeautifulSoup4進(jìn)行BOOS直聘信息爬取與數(shù)據(jù)累積【附源碼】

    操作系統(tǒng) :適用于Windows、macOS、Linux。 Python版本 :Python 3.6及以上。 依賴庫 : selenium:用于模擬瀏覽器操作。 webdriver_manager:自動管理驅(qū)動程序。 BeautifulSoup4:解析HTML頁面。 pandas:數(shù)據(jù)處理和CSV文件操作。 logging:日志記錄。 本項目旨在通過Selenium模擬用戶瀏覽器行為,獲

    2024年04月27日
    瀏覽(34)
  • Python爬取豆瓣電影Top 250,豆瓣電影評分可視化,豆瓣電影評分預(yù)測系統(tǒng)

    Python爬取豆瓣電影Top 250,豆瓣電影評分可視化,豆瓣電影評分預(yù)測系統(tǒng)

    博主介紹:?程序員徐師兄、7年大廠程序員經(jīng)歷。全網(wǎng)粉絲12w+、csdn博客專家、掘金/華為云/阿里云/InfoQ等平臺優(yōu)質(zhì)作者、專注于Java技術(shù)領(lǐng)域和畢業(yè)項目實戰(zhàn)? ?? 文末獲取源碼聯(lián)系 ?? ???? 精彩專欄推薦訂閱???? 不然下次找不到喲 2022-2024年最全的計算機(jī)軟件畢業(yè)設(shè)計選

    2024年03月21日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包