欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python使用代理IP爬取貓眼電影專業(yè)評分?jǐn)?shù)據(jù)

 更新時間:2024年03月15日 09:37:13   作者:碼銀  
在編寫爬蟲程序的過程中,IP封鎖無疑是一個常見且棘手的問題,盡管網(wǎng)絡(luò)上存在大量的免費IP代理網(wǎng)站,但其質(zhì)量往往參差不齊,令人堪憂,本篇文章中介紹一下如何使用Python的Requests庫和BeautifulSoup庫來抓取貓眼電影網(wǎng)站上的專業(yè)評分?jǐn)?shù)據(jù),需要的朋友可以參考下

前言 

我們?yōu)槭裁葱枰褂肐P代理服務(wù)?

在編寫爬蟲程序的過程中,IP封鎖無疑是一個常見且棘手的問題。盡管網(wǎng)絡(luò)上存在大量的免費IP代理網(wǎng)站,但其質(zhì)量往往參差不齊,令人堪憂。許多代理IP的延遲過高,嚴(yán)重影響了爬蟲的工作效率;更糟糕的是,其中不乏大量已經(jīng)失效的代理IP,使用這些IP不僅無法繞過封鎖,反而可能使爬蟲陷入更深的困境。

本篇文章中介紹一下如何使用Python的Requests庫和BeautifulSoup庫來抓取貓眼電影網(wǎng)站上的專業(yè)評分?jǐn)?shù)據(jù)。

正文

1、導(dǎo)包

import requests
from bs4 import BeautifulSoup
import pandas as pd
import matplotlib.pyplot as plt

Requests庫是一個簡單易用的HTTP庫,用于發(fā)送網(wǎng)絡(luò)請求和獲取響應(yīng)數(shù)據(jù)。BeautifulSoup庫則是一個用于解析HTML和XML文檔的Python庫,可以幫助我們從網(wǎng)頁中提取所需的數(shù)據(jù)。

2、設(shè)置代理

設(shè)置代理和代理信息可以在這里獲取:IP代理服務(wù)

# 設(shè)置代理信息
proxyHost = "www.16yun.cn"
proxyPort = "5445"
proxyUser = "your_proxy_user"
proxyPass = "your_proxy_password"
 
# 設(shè)置代理
proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
    "host": proxyHost,
    "port": proxyPort,
    "user": proxyUser,
    "pass": proxyPass,
}
proxies = {
    "http": proxyMeta,
    "https": proxyMeta,
}

3、設(shè)置請求頭

請求頭的獲取方式可以參考這篇文章:python使用請求頭部headers處理403錯誤_python_腳本之家 (jb51.net)

當(dāng)然不用自己的也行哈哈 

 
# 設(shè)置請求頭,模擬瀏覽器訪問
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}

4、發(fā)起請求

# 發(fā)起請求,獲取網(wǎng)頁內(nèi)容
url = 'https://maoyan.com/films?showType=3'
response = requests.get(url, headers=headers, proxies=proxies)  # 添加proxies參數(shù)
soup = BeautifulSoup(response.text, 'html.parser')

5、解析網(wǎng)頁內(nèi)容

# 解析網(wǎng)頁內(nèi)容,提取專業(yè)評分?jǐn)?shù)據(jù)
movie_names = []
professional_scores = []
 
for movie in soup.find_all('div', attrs={'class': 'movie-item film-channel'}):
    movie_name = movie.find('span', attrs={'class': 'name'}).text
    score = movie.find('span', attrs={'class': 'integer'}).text + movie.find('span', attrs={'class': 'fraction'}).text
    movie_names.append(movie_name)
    professional_scores.append(score)
 
# 將數(shù)據(jù)存儲到DataFrame中
data = {'電影名稱': movie_names, '專業(yè)評分': professional_scores}
df = pd.DataFrame(data)

6、數(shù)據(jù)可視化

# 數(shù)據(jù)可視化
plt.figure(figsize=(10, 6))
plt.bar(df['電影名稱'], df['專業(yè)評分'], color='skyblue')
plt.title('貓眼電影專業(yè)評分排行榜')
plt.xlabel('電影名稱')
plt.ylabel('專業(yè)評分')
plt.xticks(rotation=45)
plt.show()

上述代碼片段展示了如何運用Python中的Requests庫與BeautifulSoup庫,精準(zhǔn)地抓取貓眼電影網(wǎng)站上的專業(yè)評分?jǐn)?shù)據(jù)。隨后,通過Pandas庫對數(shù)據(jù)進(jìn)行整理與分析,再借助Matplotlib庫進(jìn)行可視化呈現(xiàn)。這一數(shù)據(jù)采集、處理與可視化的完整流程。

完整代碼如下:

# 導(dǎo)入所需的庫
import requests
from bs4 import BeautifulSoup
import pandas as pd
import matplotlib.pyplot as plt
 
# 設(shè)置代理信息
proxyHost = "www.16yun.cn"
proxyPort = "5445"
proxyUser = "your_proxy_user"
proxyPass = "your_proxy_password"
 
# 設(shè)置代理
proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
    "host": proxyHost,
    "port": proxyPort,
    "user": proxyUser,
    "pass": proxyPass,
}
proxies = {
    "http": proxyMeta,
    "https": proxyMeta,
}
 
# 設(shè)置請求頭,模擬瀏覽器訪問
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
 
# 發(fā)起請求,獲取網(wǎng)頁內(nèi)容
url = 'https://maoyan.com/films?showType=3'
response = requests.get(url, headers=headers, proxies=proxies)  # 添加proxies參數(shù)
soup = BeautifulSoup(response.text, 'html.parser')
 
# 解析網(wǎng)頁內(nèi)容,提取專業(yè)評分?jǐn)?shù)據(jù)
movie_names = []
professional_scores = []
 
for movie in soup.find_all('div', attrs={'class': 'movie-item film-channel'}):
    movie_name = movie.find('span', attrs={'class': 'name'}).text
    score = movie.find('span', attrs={'class': 'integer'}).text + movie.find('span', attrs={'class': 'fraction'}).text
    movie_names.append(movie_name)
    professional_scores.append(score)
 
# 將數(shù)據(jù)存儲到DataFrame中
data = {'電影名稱': movie_names, '專業(yè)評分': professional_scores}
df = pd.DataFrame(data)
 
# 數(shù)據(jù)可視化
plt.figure(figsize=(10, 6))
plt.bar(df['電影名稱'], df['專業(yè)評分'], color='skyblue')
plt.title('貓眼電影專業(yè)評分排行榜')
plt.xlabel('電影名稱')
plt.ylabel('專業(yè)評分')
plt.xticks(rotation=45)
plt.show()
 

當(dāng)然,如果你自己要使用的話得用自己專屬的IP代理信息,而且具體情況得具體分析。如果你買了代理IP的話,不會的直接問客服,直接給你服務(wù)的服服帖帖的。

小結(jié)

本文詳細(xì)闡述了如何利用Python爬蟲技術(shù)從貓眼電影網(wǎng)站獲取專業(yè)評分?jǐn)?shù)據(jù)的過程,并通過代碼實例展示了從設(shè)置代理、發(fā)起請求、解析網(wǎng)頁內(nèi)容到數(shù)據(jù)提取與可視化的完整流程。

首先,文章介紹了必要的庫導(dǎo)入,包括requests用于發(fā)起網(wǎng)絡(luò)請求,BeautifulSoup用于解析HTML頁面,pandas用于數(shù)據(jù)處理,以及matplotlib用于數(shù)據(jù)可視化。接著,通過設(shè)置代理和請求頭,模擬了瀏覽器訪問,成功繞過了可能存在的反爬蟲機(jī)制,獲取了目標(biāo)網(wǎng)頁的內(nèi)容。

在解析網(wǎng)頁內(nèi)容方面,文章通過BeautifulSoup的find_all方法定位到包含電影信息的div元素,并提取了電影名稱和專業(yè)評分?jǐn)?shù)據(jù)。這些數(shù)據(jù)被存儲在一個列表中,為后續(xù)的數(shù)據(jù)處理和分析提供了基礎(chǔ)。

為了更直觀地展示數(shù)據(jù),文章還利用pandas庫將提取的數(shù)據(jù)轉(zhuǎn)換成了DataFrame格式,并使用matplotlib庫繪制了專業(yè)評分排行榜的條形圖。這不僅有助于讀者更好地理解數(shù)據(jù)分布情況,還能為后續(xù)的深入分析提供直觀的參考。

以上就是python使用代理IP爬取貓眼電影專業(yè)評分?jǐn)?shù)據(jù)的詳細(xì)內(nèi)容,更多關(guān)于python代理IP爬取貓眼數(shù)據(jù)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 解決pip install psycopg2出錯問題

    解決pip install psycopg2出錯問題

    這篇文章主要介紹了解決pip install psycopg2出錯問題。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • python使用opencv在Windows下調(diào)用攝像頭實現(xiàn)解析

    python使用opencv在Windows下調(diào)用攝像頭實現(xiàn)解析

    這篇文章主要介紹了python使用opencv在Windows下調(diào)用攝像頭實現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • 對python調(diào)用RPC接口的實例詳解

    對python調(diào)用RPC接口的實例詳解

    今天小編就為大家分享一篇對python調(diào)用RPC接口的實例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Flask框架 CSRF 保護(hù)實現(xiàn)方法詳解

    Flask框架 CSRF 保護(hù)實現(xiàn)方法詳解

    這篇文章主要介紹了Flask框架 CSRF 保護(hù)實現(xiàn)方法,結(jié)合實例形式詳細(xì)分析了Flask-WTF針對CSRF攻擊的防護(hù)相關(guān)操作技巧,需要的朋友可以參考下
    2019-10-10
  • Python中關(guān)于文件的具體操作與介紹

    Python中關(guān)于文件的具體操作與介紹

    文件與目錄操作是編程語言中非常重要的功能,Python也對其提供了相應(yīng)的API支持,這篇博文就是具體介紹它們的使用方法,通讀本篇對大家的學(xué)習(xí)或工作具有一定的價值,需要的朋友可以參考下
    2021-09-09
  • 詳解Django框架中用context來解析模板的方法

    詳解Django框架中用context來解析模板的方法

    這篇文章主要介紹了詳解Django框架中用context來解析模板的方法,Django是重多高人氣Python框架中最為著名的一個,需要的朋友可以參考下
    2015-07-07
  • Pyhon Flask框架:第一個Flask程序

    Pyhon Flask框架:第一個Flask程序

    這篇文章主要介紹了Flask搭建虛擬環(huán)境并運行第一個flask程序,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-10-10
  • 解決Python?出現(xiàn)File?“<stdin>“,?line?1非語法錯誤的問題

    解決Python?出現(xiàn)File?“<stdin>“,?line?1非語法錯誤的問題

    這篇文章主要介紹了Python?出現(xiàn)File?“<stdin>“,?line?1非語法錯誤的解決辦法,本文給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • 基于Python編寫一個監(jiān)控CPU的應(yīng)用系統(tǒng)

    基于Python編寫一個監(jiān)控CPU的應(yīng)用系統(tǒng)

    在使用電腦辦公時,有時候不知道哪些軟件或進(jìn)程會占用大量的資源,導(dǎo)致進(jìn)行其他任務(wù)時出現(xiàn)變慢、卡頓等現(xiàn)象。因此,實時監(jiān)控系統(tǒng)的資源就變得非常重要。本文用Python編寫了一款超治愈的RunCat監(jiān)控應(yīng)用系統(tǒng),需要的可以參考一下
    2022-06-06
  • django rest framework 實現(xiàn)用戶登錄認(rèn)證詳解

    django rest framework 實現(xiàn)用戶登錄認(rèn)證詳解

    這篇文章主要介紹了django rest framework 實現(xiàn)用戶登錄認(rèn)證詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07

最新評論