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

Python爬攜程指定景點評論的用戶、評論內(nèi)容及時間(景點黃龍溪為例)

這篇具有很好參考價值的文章主要介紹了Python爬攜程指定景點評論的用戶、評論內(nèi)容及時間(景點黃龍溪為例)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

整個分享分為下面幾個部分:

目錄

1.導(dǎo)入所需的庫

2.設(shè)定三個變量存儲從爬取的評論數(shù)據(jù)中提取的信息

3.爬取指定頁面數(shù)(total_pages)的評論數(shù)據(jù)。

4.設(shè)定postURL

6.找到景點的poild并填寫在代碼中

問題1:有時候Poild會被隱藏,所以可能需要多試幾次。(或者新開一個瀏覽器窗口復(fù)制打開)

7.發(fā)送POST請求到指定的postUrl,并加載響應(yīng)的JSON數(shù)據(jù)。

8.爬取評論接口數(shù)據(jù),提取評論信息。

9.將評論數(shù)據(jù)轉(zhuǎn)換為DataFrame格式,再保存為Excel文件

問題2:有955條評論的,但是只能爬到700多條,現(xiàn)下只能解決到這種程度了,求教希望知道怎么做的小伙伴)

下面為全部代碼,如果你著急運行請直接點到這里。


1.導(dǎo)入所需的庫

requests處理HTTP請求,json庫處理JSON數(shù)據(jù)。導(dǎo)入數(shù)據(jù)分析工具Pandas,用于創(chuàng)建和操作DataFrame。導(dǎo)入tqdm用于創(chuàng)建進(jìn)度條,提供可視化的進(jìn)度顯示。

import requests
import json
import pandas as pd
from tqdm import tqdm
2.設(shè)定三個變量存儲從爬取的評論數(shù)據(jù)中提取的信息

userNames:存儲評論中的用戶名信息。

commentDetails:存儲評論的具體內(nèi)容。

commentTimes:存儲評論的時間信息。

在代碼執(zhí)行的過程中,針對每一條評論,程序會從評論數(shù)據(jù)中提取相應(yīng)的用戶名、評論內(nèi)容和評論時間,然后將這些信息分別添加到對應(yīng)的列表中。循環(huán)結(jié)束后,列表中將包含所有評論頁面中提取的用戶名、評論內(nèi)容和評論時間的信息。

userNames = []
commentDetails = []
commentTimes = []
3.爬取指定頁面數(shù)(total_pages)的評論數(shù)據(jù)。

total_pages=14:設(shè)置了要爬取的總頁數(shù)為14頁,即爬取14次評論頁面。

total_pages = 14

forpagenintqdm(range(0,total_pages),desc='爬取進(jìn)度',unit='頁')使用for循環(huán)迭代爬取評論頁面,range(0,total_pages)生成了一個包含0到total_pages-1的整數(shù)序列,每次迭代爬取一頁評論。

payload:請求的參數(shù),包含爬取評論所需的各種信息,如評論所屬頻道類型、是否折疊、評論標(biāo)簽等。參數(shù)會在每次循環(huán)中被傳遞給請求,以獲取對應(yīng)頁面的評論數(shù)據(jù)。

postUrl:設(shè)置評論數(shù)據(jù)的請求鏈接。

這樣,通過循環(huán)遍歷,每次發(fā)送一個帶有不同頁碼的請求,從而獲取每頁的評論數(shù)據(jù)。整個過程中,進(jìn)度條顯示當(dāng)前爬取的進(jìn)度。

for pagen in tqdm(range(0, total_pages), desc='爬取進(jìn)度', unit='頁'):
    payload = {
        "arg": {
            "channelType": 2,
            "collapseTpte": 0,
            "commentTagId": 0,
            "pageSize": 50,#需要自己更改的地方:自己設(shè)定每頁爬多少條
            "poiId": 81011,#需要自己更改的地方:為景點的信息,其他都可以直接復(fù)制
            "sourseType": 1,
            "sortType": 3,
            "pageIndex": pagen,
            "starType": 0
        },
        "head": {
            "cid": "09031062417234242897",
            "ctok": "",
            "cver": "1.0",
            "lang": "01",
            "sid": "888",
            "syscode": "09",
            "auth": "",
            "xsid": "",
            "extension": []
        }
    }
4.設(shè)定postURL

postUrl是設(shè)定的評論數(shù)據(jù)請求鏈接,它是個URL。包含一些查詢參數(shù),用于定制請求的行為。

https://m.ctrip.com/restapi/soa2/13444/json/getCommentCollapseList指定請求路徑和資源路徑,告訴服務(wù)器我們想要獲取評論的折疊列表,以JSON格式返回。

這里提供其他用途的url(某處截圖到的,忘記來源了,侵刪)

Python爬攜程指定景點評論的用戶、評論內(nèi)容及時間(景點黃龍溪為例),python,網(wǎng)絡(luò)爬蟲

綜合起來,postUrl指定了請求的服務(wù)端資源路徑,并攜帶了一些參數(shù),以獲取攜程網(wǎng)站上指定景點評論的折疊列表。

這里在(開Fn 按F12打開開發(fā)者工具)

網(wǎng)絡(luò)——>找到第二個這個包 ——>負(fù)載內(nèi)有一些我們需要的信息

Python爬攜程指定景點評論的用戶、評論內(nèi)容及時間(景點黃龍溪為例),python,網(wǎng)絡(luò)爬蟲

6.找到景點的poild并填寫在代碼中

關(guān)鍵來了?。。。。。。。。。。∥覀円业骄包c的poild,這是我們找到那個景點的關(guān)鍵?。。╬oild需要填寫的地方在上面那段代碼里,已標(biāo)注)

那么我們?nèi)绾握业絇oild呢?

如果直接打開攜程網(wǎng)站,找到景點黃龍溪,其頁面會是這樣的:

Python爬攜程指定景點評論的用戶、評論內(nèi)容及時間(景點黃龍溪為例),python,網(wǎng)絡(luò)爬蟲

Python爬攜程指定景點評論的用戶、評論內(nèi)容及時間(景點黃龍溪為例),python,網(wǎng)絡(luò)爬蟲

Python爬攜程指定景點評論的用戶、評論內(nèi)容及時間(景點黃龍溪為例),python,網(wǎng)絡(luò)爬蟲

點開點評,發(fā)現(xiàn)點評的頁面的網(wǎng)址是不改變的(翻頁了也無法看到變化,那么就麻煩了,這個頁面我無法實現(xiàn)爬取,所以另辟蹊徑了哈)

Python爬攜程指定景點評論的用戶、評論內(nèi)容及時間(景點黃龍溪為例),python,網(wǎng)絡(luò)爬蟲

回歸到我們說找Poild的問題,請打開下面這個網(wǎng)址:

攜程旅行-酒店預(yù)訂,機(jī)票預(yù)訂查詢,旅游度假,商旅管理-攜程無線官網(wǎng)

打開是這樣的頁面:

Python爬攜程指定景點評論的用戶、評論內(nèi)容及時間(景點黃龍溪為例),python,網(wǎng)絡(luò)爬蟲

請在搜索框輸入黃龍溪,點開這個鏈接(黃龍溪 熱門景點)

Python爬攜程指定景點評論的用戶、評論內(nèi)容及時間(景點黃龍溪為例),python,網(wǎng)絡(luò)爬蟲

頁面是這樣的,這里就出現(xiàn)了該景點的poild為81011。

Python爬攜程指定景點評論的用戶、評論內(nèi)容及時間(景點黃龍溪為例),python,網(wǎng)絡(luò)爬蟲

點開點評鏈接。

Python爬攜程指定景點評論的用戶、評論內(nèi)容及時間(景點黃龍溪為例),python,網(wǎng)絡(luò)爬蟲

點開之后呈現(xiàn)的頁面如圖,然后你往下翻之后發(fā)現(xiàn)是動態(tài)頁面,向下滑動評論才會一條條蹦出來。

Python爬攜程指定景點評論的用戶、評論內(nèi)容及時間(景點黃龍溪為例),python,網(wǎng)絡(luò)爬蟲

第二個可以獲得poild的地方(有時要多試幾次)(上面的看了,這里可以不看)

看到上面那行網(wǎng)址了吧,poild值在那段里面,你復(fù)制一下它:

【攜程攻略】攜程旅游攻略,自助游,自駕游,出游,自由行攻略指南 (ctrip.com)

它有點亂糟糟的,我們打開站長來解下碼:

解碼網(wǎng)址:UrlEncode編碼/UrlDecode解碼 - 站長工具

Python爬攜程指定景點評論的用戶、評論內(nèi)容及時間(景點黃龍溪為例),python,網(wǎng)絡(luò)爬蟲

成功的情況:

Python爬攜程指定景點評論的用戶、評論內(nèi)容及時間(景點黃龍溪為例),python,網(wǎng)絡(luò)爬蟲

恭喜你完成主線任務(wù)!

問題1:有時候Poild會被隱藏,所以可能需要多試幾次。(或者新開一個瀏覽器窗口復(fù)制打開)

這種是被隱藏的情況,url中沒有出現(xiàn)poild:
Python爬攜程指定景點評論的用戶、評論內(nèi)容及時間(景點黃龍溪為例),python,網(wǎng)絡(luò)爬蟲

主要講解部分結(jié)束了,后面基本不需要做改動了。

7.發(fā)送POST請求到指定的postUrl,并加載響應(yīng)的JSON數(shù)據(jù)。

requests.post(postUrl,data=json.dumps(payload)):使用requests庫發(fā)送POST請求到指定的postUrl。

data=json.dumps(payload)將Python字典payload轉(zhuǎn)換成JSON格式的字符串,并將其作為請求的數(shù)據(jù)發(fā)送給服務(wù)器。

.text:獲取服務(wù)器響應(yīng)的內(nèi)容,這里是評論數(shù)據(jù)的JSON字符串。

html_1=json.loads(html):將獲取的JSON字符串轉(zhuǎn)換為Python對象。json.loads()函數(shù)用于解析JSON字符串,將其轉(zhuǎn)換為相應(yīng)的Python數(shù)據(jù)結(jié)構(gòu),存儲在變量html_1中。

綜合起來,向指定的攜程網(wǎng)站評論數(shù)據(jù)接口發(fā)送請求,并將得到的JSON數(shù)據(jù)加載為Python對象。

    html = requests.post(postUrl, data=json.dumps(payload)).text
    html_1 = json.loads(html)
8.爬取評論接口數(shù)據(jù),提取評論信息。

檢查攜程網(wǎng)站評論數(shù)據(jù)接口返回的JSON數(shù)據(jù)中是否包含名為'items'的鍵。如果存在,說明有評論數(shù)據(jù)可供提取。接著,通過遍歷commentItems列表,將每一條評論的相關(guān)信息提取并添加到對應(yīng)的列表中(userNames、commentDetails和commentTimes)。

代碼解析:

if'items'inhtml_1["result"]檢查JSON數(shù)據(jù)中是否包含"items"鍵。如果存在,說明有評論數(shù)據(jù)可供提取,進(jìn)入下一步處理。

commentItems=html_1["result"]["items"]:將評論數(shù)據(jù)提取出來,存儲在commentItems變量中。這是一個列表,每個元素代表一條評論。

foriinrange(0,len(commentItems))遍歷評論數(shù)據(jù)列表,處理每一條評論。

ifcommentItems[i]isnotNoneand'userInfo'incommentItems[i]and'userNick'incommentItems[i]['userInfo']::在訪問元素之前檢查當(dāng)前評論項是否不為None,并且該評論項包含'userInfo'鍵和'userNick'鍵。這是為了確保評論數(shù)據(jù)中包含用戶信息,并且該用戶信息中包含用戶名。將提取的用戶名、評論內(nèi)容和評論時間分別添加到userNames、commentDetails和commentTimes列表中。

    # 檢查響應(yīng)中是否存在'items'
    if 'items' in html_1["result"]:
        commentItems = html_1["result"]["items"]

        for i in range(0, len(commentItems)):
            # 在訪問元素之前檢查當(dāng)前項是否不為None
            if commentItems[i] is not None and 'userInfo' in commentItems[i] and 'userNick' in commentItems[i]['userInfo']:
                userName = commentItems[i]['userInfo']['userNick']
                commentDetail = commentItems[i]['content']
                commentTime = commentItems[i]['publishTypeTag']

                userNames.append(userName)
                commentDetails.append(commentDetail)
                commentTimes.append(commentTime)
9.將評論數(shù)據(jù)轉(zhuǎn)換為DataFrame格式,再保存為Excel文件
# 創(chuàng)建 DataFrame
df = pd.DataFrame({
    '用戶評論內(nèi)容': commentDetails,
    '用戶名': userNames,
    '用戶評論時間': commentTimes
})

# 保存到 Excel 文件
df.to_excel('只爬黃龍溪評論1223url.xlsx', index=False, encoding='utf-8')

獲得的信息有700條,保存為excel文件。

問題2:有955條評論的,但是只能爬到700多條,現(xiàn)下只能解決到這種程度了,求教希望知道怎么做的小伙伴)

Python爬攜程指定景點評論的用戶、評論內(nèi)容及時間(景點黃龍溪為例),python,網(wǎng)絡(luò)爬蟲

下面為全部代碼,如果你著急運行請直接點到這里。
import requests
import json
import pandas as pd
from tqdm import tqdm

userNames = []
commentDetails = []
commentTimes = []

total_pages = 14

for pagen in tqdm(range(0, total_pages), desc='爬取進(jìn)度', unit='頁'):
    payload = {
        "arg": {
            "channelType": 2,
            "collapseTpte": 0,
            "commentTagId": 0,
            "pageSize": 50,
            "poiId": 81011,#需要自己更改的地方 為景點的信息 其他都可以直接復(fù)制
            "sourseType": 1,
            "sortType": 3,
            "pageIndex": pagen,
            "starType": 0
        },
        "head": {
            "cid": "09031062417234242897",
            "ctok": "",
            "cver": "1.0",
            "lang": "01",
            "sid": "888",
            "syscode": "09",
            "auth": "",
            "xsid": "",
            "extension": []
        }
    }
    postUrl = "https://m.ctrip.com/restapi/soa2/13444/json/getCommentCollapseList"

    html = requests.post(postUrl, data=json.dumps(payload)).text
    html_1 = json.loads(html)

    # 檢查響應(yīng)中是否存在'items'
    if 'items' in html_1["result"]:
        commentItems = html_1["result"]["items"]

        for i in range(0, len(commentItems)):
            # 在訪問元素之前檢查當(dāng)前項是否不為None
            if commentItems[i] is not None and 'userInfo' in commentItems[i] and 'userNick' in commentItems[i]['userInfo']:
                userName = commentItems[i]['userInfo']['userNick']
                commentDetail = commentItems[i]['content']
                commentTime = commentItems[i]['publishTypeTag']

                userNames.append(userName)
                commentDetails.append(commentDetail)
                commentTimes.append(commentTime)

# 創(chuàng)建 DataFrame
df = pd.DataFrame({
    '用戶評論內(nèi)容': commentDetails,
    '用戶名': userNames,
    '用戶評論時間': commentTimes
})

# 保存到 Excel 文件
df.to_excel('只爬黃龍溪評論1223url.xlsx', index=False, encoding='utf-8')

小白寫文,有問題請多多指教。文章來源地址http://www.zghlxwxcb.cn/news/detail-766622.html

到了這里,關(guān)于Python爬攜程指定景點評論的用戶、評論內(nèi)容及時間(景點黃龍溪為例)的文章就介紹完了。如果您還想了解更多內(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)文章

  • 微信旅游景區(qū)景點評論小程序系統(tǒng)設(shè)計與實現(xiàn)

    微信旅游景區(qū)景點評論小程序系統(tǒng)設(shè)計與實現(xiàn)

    目的 :本課題主要目標(biāo)是設(shè)計并能夠?qū)崿F(xiàn)一個基于微信景區(qū)景點旅游攻略小程序系統(tǒng),前臺用戶使用小程序,小程序使用微信開發(fā)者工具開發(fā);后臺管理使用基PP+MySql的B/S架構(gòu),開發(fā)工具使用phpstorm;通過后臺添加景區(qū)景點信息,管理景區(qū)景點訂單,管理評論等,用戶通過小

    2024年02月11日
    瀏覽(20)
  • 【Python】爬蟲練習(xí)-爬取豆瓣網(wǎng)電影評論用戶的觀影習(xí)慣數(shù)據(jù)

    【Python】爬蟲練習(xí)-爬取豆瓣網(wǎng)電影評論用戶的觀影習(xí)慣數(shù)據(jù)

    目錄 前言 一、配置環(huán)境 1.1、 安裝Python 1.2、?安裝Requests庫和BeautifulSoup庫 1.3.、安裝Matplotlib 二、登錄豆瓣網(wǎng)(重點) 2.1、獲取代理 2.2、測試代理ip是否可用 2.3、設(shè)置大量請求頭隨機(jī)使用 2.4、登錄豆瓣網(wǎng) 三、爬取某一部熱門電影數(shù)據(jù) 3.1、爬取全部長、短評論 3.2、獲取用戶

    2024年02月09日
    瀏覽(27)
  • Python Flask+Echarts+sklearn+MySQL(評論情感分析、用戶推薦、BI報表)項目分享

    Python Flask+Echarts+sklearn+MySQL(評論情感分析、用戶推薦、BI報表)項目分享

    隨著互聯(lián)網(wǎng)的快速發(fā)展和智能手機(jī)的普及,人們越來越傾向于在網(wǎng)上查找餐廳、購物中心、酒店和旅游景點等商戶的點評和評分信息,以便做出更好的消費決策。Yelp作為美國著名的商戶點評網(wǎng)站,提供了一個平臺,讓用戶可以對商戶進(jìn)行評價和點評,并與其他用戶分享自己的

    2024年02月12日
    瀏覽(29)
  • Python-pdfplumber讀取PDF所有內(nèi)容并自行提取指定內(nèi)容

    ?? 歡迎來到Python辦公自動化專欄—Python處理辦公問題,解放您的雙手 ?????? 博客主頁:一晌小貪歡的博客主頁 ?? 該系列文章專欄:Python辦公自動化專欄 文章作者技術(shù)和水平有限,如果文中出現(xiàn)錯誤,希望大家能指正?? ?? 歡迎各位佬關(guān)注! ?? 最近接到一個需求

    2024年02月15日
    瀏覽(32)
  • 7.6:Python如何在文件中查找指定的內(nèi)容?

    在當(dāng)今數(shù)據(jù)量日益增長的時代,對于數(shù)據(jù)的處理和分析成為了各行各業(yè)都需要掌握的技能。Python作為一門流行的編程語言,擁有著強(qiáng)大的數(shù)據(jù)處理和分析能力,成為了數(shù)據(jù)科學(xué)領(lǐng)域的重要工具之一。在Python中,處理文件中的數(shù)據(jù)是常見的需求之一,而在處理文件數(shù)據(jù)中查找指

    2024年02月08日
    瀏覽(25)
  • 篩選特定內(nèi)容:Python中篩選DataFrame指定數(shù)據(jù)列包含特定內(nèi)容的所有數(shù)據(jù)行

    篩選特定內(nèi)容:Python中篩選DataFrame指定數(shù)據(jù)列包含特定內(nèi)容的所有數(shù)據(jù)行 在數(shù)據(jù)處理和分析中,經(jīng)常需要對數(shù)據(jù)進(jìn)行篩選以便找到我們需要的信息。而在Python中,使用Pandas庫中的DataFrame對象可以方便地對數(shù)據(jù)進(jìn)行處理和分析。 下面我們來看如何使用contains()函數(shù),篩選DataFr

    2024年02月14日
    瀏覽(28)
  • python讀取word/pdf文檔,指定文字內(nèi)容和圖片

    任務(wù)要求: 將每頁需要的內(nèi)容讀取出來放到不同的文件夾,找出含有指定內(nèi)容的頁面創(chuàng)建文件夾,然后把相關(guān)的內(nèi)容和圖片放進(jìn)去。 pdf 讀起來比較方便, 按頁碼讀取文件:

    2024年02月12日
    瀏覽(40)
  • 在 Python 中如何刪除指定字符之前或之后的所有內(nèi)容

    要刪除字符串中某個字符后的所有內(nèi)容: 使用 str.split() 方法在分隔符上拆分字符串。 訪問索引 0 處的列表元素以獲取分隔符之前的所有內(nèi)容。 或者,使用加法 + 運算符添加分隔符。 我們使用 str.split() 方法刪除字符(示例中的?。┲蟮乃袃?nèi)容。 str.split() 方法使用定界符

    2024年02月08日
    瀏覽(22)
  • DEDECMS刪除指定ip的評論方法

    在網(wǎng)站中很多人都會啟用織夢的留言本功能,所以在評論的時候就會有很多會員和游客的留言,有的時候也會有很多朋友都是來發(fā)廣告的,所以在審核評論的時候就會很費勁,往往一個ip會有很多條垃圾廣告,所以在刪除的就需要指定ip來刪除,這樣既快捷又方便。 刪除指定

    2024年02月03日
    瀏覽(23)
  • 微信小程序 內(nèi)容評論-回復(fù)評論-回復(fù)回復(fù)的實現(xiàn)(純前端)

    輸入框失去焦點時觸發(fā) 如果你是點擊輸入框右邊按鈕才發(fā)送內(nèi)容的話需要在輸入框bindinput屬性綁定以下方法獲取用戶輸入的值

    2024年02月04日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包