国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

爬去哪兒網(wǎng)5A景點(diǎn)評論

wudengzan / 966人閱讀

摘要:目的獲得去哪兒網(wǎng)評論信息包括評論和打分,保存到本地文件。去除無用的評論保存到本地文件哪網(wǎng)景區(qū)的的評論評分去哪網(wǎng)獲得景點(diǎn)本次共爬取信息條數(shù)據(jù)成果展示外加反省大概萬條吧美滋滋等我開心完就回來就回來整理出現(xiàn)的問題歡迎各位大佬批評指正

目的

獲得去哪兒網(wǎng)評論信息(包括評論和打分),保存到本地csv文件。

前期準(zhǔn)備工作(踩點(diǎn))

1、打開網(wǎng)站,在門票搜索框直接輸入“5A”,發(fā)現(xiàn)可以獲得5A景區(qū)列表。

2、按下F12,讓我們看一看,他們是如何組織這些景點(diǎn)信息的

哈哈,可以看到他們把所有的景點(diǎn)信息都放在了一個json文件里面,也就說我們直接獲取這個json文件就能直接得到5A景點(diǎn)的列表了。
下面是獲取json的url,參數(shù)一目了然有沒有?!

http://piao.qunar.com/ticket/list.json?keyword=5A®ion=&from=mps_search_suggest&page=2
3、接下來我們再研究一下每個景點(diǎn)的詳情頁

一樣的配方,一樣的味道!每個景點(diǎn)所有的評論依然在一個json文件里面
看到下面url里面的sightId了嗎,經(jīng)過驗證這個就是景點(diǎn)的編號.

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)評論.一切看起來都是那么順利.

4、等等似乎有什么不對我們再仔細(xì)看看

注意到左邊json里面的sightid了嗎?是"1582294258"明顯不是我們剛才獲取評論時用到的那個呀!倒是和地址欄里面的那個是一樣的.好吧,看來看來他們對每個景點(diǎn)設(shè)置兩個id,一個用于獲取html文件(記為id)另一個是評論id(記為rid).看來需要研究一下怎么把id變?yōu)閞id

好吧,發(fā)現(xiàn)這個id隱藏在head標(biāo)簽下嘍.

上代碼

采完點(diǎn),我們就可以寫代碼了
import pandas as pd
import requests as req
import time,json

#獲得景點(diǎn)id
def GetId():
    sightlist = []#儲存包含景點(diǎn)列表的json
    for i in range(1,23):#先把所有景點(diǎn)列表的json都下載下來
        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)倉庫所有的景點(diǎn)及其對應(yīng)的id都放在這里
    for jsons in sightlist:#處理每個json,獲得景點(diǎn)信息
        lists = jsons["data"]["sightList"]
        for each in lists:
            #print(each["sightName"])
            key = each["sightName"]
            sight[key] = each["sightId"]
    
    return sight
#垃圾查找函數(shù),不會正則表達(dá)式,真是無奈
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
#獲得評論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)#這個方法是我百度的,有些時候用起來還真是方便
    num = search("
  • 全部(",")
  • ",text) dd = [] dd.append(rid) dd.append(num) return dd #獲得一個景點(diǎn)的評論 def Getcom(rid,num,name): comments = [["*********************************以下是" + name + "的評論*********************************",""]]#初始化并給每個景點(diǎn)的評論加上表頭 page = 1200 if int(num) > 1200 else int(num)#按照上級要求,每個景點(diǎn)1200條左右評論就行 for i in range(1,(page//10)+1):#逐頁獲取評論并保存 url = "http://piao.qunar.com/ticket/detailLight/sightCommentList.json?sightId=" + str(rid) + "&index="+ str(i) + "&page=" + str(i) + "&pageSize=10&tagType=0" response = req.get(url) r = json.loads(response.text) if "commentList" in r["data"].keys(): for each in r["data"]["commentList"]: data = []#【評論,評分】 data.append(each["content"]) data.append(each["score"]) if data[0] == "用戶未點(diǎn)評,系統(tǒng)默認(rèn)好評。":#去除無用的評論 continue comments.append(data) print(data[0]) print(data[1]) return comments #保存到本地文件 def save(l): head = ["哪網(wǎng)5A景區(qū)的的評論" , "評分" ] df = pd.DataFrame (l , columns = head) df.to_csv ("去哪網(wǎng).csv", encoding = "utf-8") if __name__ =="__main__": sightid = GetId()#獲得景點(diǎn) id comment = [] for each in sightid: print(each) print(Getrid(sightid[each])[0]) print(Getrid(sightid[each])[1]) co = Getcom(Getrid(sightid[each])[0],Getrid(sightid[each])[1],each) comment.extend(co) print("本次共爬取信息%d條數(shù)據(jù)"%(len(comment))) save(comment)

    成果展示外加反省

    大概30萬條吧,美滋滋.等我開心完就回來,就回來整理出現(xiàn)的問題.歡迎各位大佬批評指正.

    文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

    轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/41251.html

    相關(guān)文章

    • 爬取攜程和螞蜂窩的景點(diǎn)評論數(shù)據(jù)攜程評論數(shù)據(jù)爬取旅游網(wǎng)站數(shù)據(jù)爬取

      摘要:前言為了獲取多源數(shù)據(jù)需要到各個網(wǎng)站獲取一些景點(diǎn)的評論信息和圖片,首先選到了攜程和螞蜂窩這兩個網(wǎng)站,將一些爬取過程記錄下來本人長期出售超大量微博數(shù)據(jù)旅游網(wǎng)站評論數(shù)據(jù),并提供各種指定數(shù)據(jù)爬取服務(wù),。 前言 ??為了獲取多源數(shù)據(jù)需要到各個網(wǎng)站獲取一些景點(diǎn)的評論信息和圖片,首先選到了攜程和螞蜂窩這兩個網(wǎng)站,將一些爬取過程記錄下來 ??PS:(本人長期出售超大量微博數(shù)據(jù)、旅游網(wǎng)站評論數(shù)據(jù),并...

      GraphQuery 評論0 收藏0

    發(fā)表評論

    0條評論

    最新活動
    閱讀需要支付1元查看
    <