摘要:目的獲得去哪兒網(wǎng)評(píng)論信息包括評(píng)論和打分,保存到本地文件。去除無(wú)用的評(píng)論保存到本地文件哪網(wǎng)景區(qū)的的評(píng)論評(píng)分去哪網(wǎng)獲得景點(diǎn)本次共爬取信息條數(shù)據(jù)成果展示外加反省大概萬(wàn)條吧美滋滋等我開心完就回來(lái)就回來(lái)整理出現(xiàn)的問題歡迎各位大佬批評(píng)指正
目的
獲得去哪兒網(wǎng)評(píng)論信息(包括評(píng)論和打分),保存到本地csv文件。
前期準(zhǔn)備工作(踩點(diǎn))
1、打開網(wǎng)站,在門票搜索框直接輸入“5A”,發(fā)現(xiàn)可以獲得5A景區(qū)列表。
2、按下F12,讓我們看一看,他們是如何組織這些景點(diǎn)信息的
哈哈,可以看到他們把所有的景點(diǎn)信息都放在了一個(gè)json文件里面,也就說我們直接獲取這個(gè)json文件就能直接得到5A景點(diǎn)的列表了。
下面是獲取json的url,參數(shù)一目了然有沒有?!
http://piao.qunar.com/ticket/list.json?keyword=5A®ion=&from=mps_search_suggest&page=2
3、接下來(lái)我們?cè)傺芯恳幌旅總€(gè)景點(diǎn)的詳情頁(yè)
一樣的配方,一樣的味道!每個(gè)景點(diǎn)所有的評(píng)論依然在一個(gè)json文件里面
看到下面url里面的sightId了嗎,經(jīng)過驗(yàn)證這個(gè)就是景點(diǎn)的編號(hào).
http://piao.qunar.com/ticket/detailLight/sightCommentList.json?sightId=3076&index=2&page=2&pageSize=10&tagType=0
現(xiàn)在我們大致已經(jīng)有了思路.第一步,獲得所有5A景點(diǎn)的信息用列表保存[景點(diǎn)名字,景點(diǎn)id],第二部,由景點(diǎn)id可以獲得景點(diǎn)評(píng)論.一切看起來(lái)都是那么順利.
4、等等似乎有什么不對(duì)我們?cè)僮屑?xì)看看
注意到左邊json里面的sightid了嗎?是"1582294258"明顯不是我們剛才獲取評(píng)論時(shí)用到的那個(gè)呀!倒是和地址欄里面的那個(gè)是一樣的.好吧,看來(lái)看來(lái)他們對(duì)每個(gè)景點(diǎn)設(shè)置兩個(gè)id,一個(gè)用于獲取html文件(記為id)另一個(gè)是評(píng)論id(記為rid).看來(lái)需要研究一下怎么把id變?yōu)閞id
好吧,發(fā)現(xiàn)這個(gè)id隱藏在head標(biāo)簽下嘍.
上代碼
采完點(diǎn),我們就可以寫代碼了
import pandas as pd import requests as req import time,json #獲得景點(diǎn)id def GetId(): sightlist = []#儲(chǔ)存包含景點(diǎn)列表的json for i in range(1,23):#先把所有景點(diǎn)列表的json都下載下來(lái) url = "http://piao.qunar.com/ticket/list.json?from=mpl_search_suggest_h&keyword=5a&page=" + str(i) + "&sort=" response = req.get(url) r = json.loads(response.text) sightlist.append(r) response.close #time.sleep(3) sight = {}#景點(diǎn)倉(cāng)庫(kù)所有的景點(diǎn)及其對(duì)應(yīng)的id都放在這里 for jsons in sightlist:#處理每個(gè)json,獲得景點(diǎn)信息 lists = jsons["data"]["sightList"] for each in lists: #print(each["sightName"]) key = each["sightName"] sight[key] = each["sightId"] return sight #垃圾查找函數(shù),不會(huì)正則表達(dá)式,真是無(wú)奈 def search(s,e,r): start = r.find(s) l = len(s) end = r.find(e,start+l,start+100) rr = r[start+l:end] return rr #獲得評(píng)論id def Getrid(id): url = "http://piao.qunar.com/ticket/detail_" + str(id) + ".html" response = req.get(url) text = response.text rid = search("piao.qunar.com/ticket/detail_",".html",text)#這個(gè)方法是我百度的,有些時(shí)候用起來(lái)還真是方便 num = search("
成果展示外加反省
大概30萬(wàn)條吧,美滋滋.等我開心完就回來(lái),就回來(lái)整理出現(xiàn)的問題.歡迎各位大佬批評(píng)指正.
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/41251.html
摘要:前言為了獲取多源數(shù)據(jù)需要到各個(gè)網(wǎng)站獲取一些景點(diǎn)的評(píng)論信息和圖片,首先選到了攜程和螞蜂窩這兩個(gè)網(wǎng)站,將一些爬取過程記錄下來(lái)本人長(zhǎng)期出售超大量微博數(shù)據(jù)旅游網(wǎng)站評(píng)論數(shù)據(jù),并提供各種指定數(shù)據(jù)爬取服務(wù),。 前言 ??為了獲取多源數(shù)據(jù)需要到各個(gè)網(wǎng)站獲取一些景點(diǎn)的評(píng)論信息和圖片,首先選到了攜程和螞蜂窩這兩個(gè)網(wǎng)站,將一些爬取過程記錄下來(lái) ??PS:(本人長(zhǎng)期出售超大量微博數(shù)據(jù)、旅游網(wǎng)站評(píng)論數(shù)據(jù),并...
閱讀 3890·2021-10-13 09:39
閱讀 3891·2021-09-24 09:48
閱讀 1259·2021-09-01 10:30
閱讀 2586·2019-08-30 15:55
閱讀 1839·2019-08-29 16:39
閱讀 2354·2019-08-26 13:55
閱讀 3113·2019-08-26 12:23
閱讀 1694·2019-08-26 11:59