日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python爬虫爬取猫眼电影风语咒影评评论信息

發布時間:2024/5/14 python 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python爬虫爬取猫眼电影风语咒影评评论信息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

風語咒作為扛起國漫崛起的又一國漫之作,爬取風語咒貓眼的電影評論數據,以便對其評論做之后的數據分析。

此次demo的流程圖如下:

一.找到貓眼電影中風語咒影評得json數據:

l

找出url后,往下滾動后,發現其并無評論頁面得接口,這時通過f12啟動手機版得調試模式,通過手機端得界面尋找此電影的評論的接口位置。刷新后如下:

找到位置后,點開評論區,因為其中的評論采用的是js的方式加載,故當其向下拉動時,通過Network可以獲得其中的json串,通過json串得出其中的評論json的url。

二.觀察url,尋找其中的參數規律:

風語咒影評的某評論json的url如下:

http://m.maoyan.com/mmdb/comments/movie/1217513.json?_v_=yes&offset=45&startTime=2018-08-23%2015%3A24%3A16

?通過分析其中的參數并在瀏覽器上嘗試,可以發現其中offset和starttime的參數均為可變的,經實踐得知,starttime參數的含義是該條評論的時間,而offset指的是該頁評論的index;那么我們可以通過格式化這兩個參數的值,來對影評評論數據進行抓取。

? 因為我們暫時不知其中的offset到多少會為空,所以我們可以使用for循環對page進行操作,通過觀察每頁中的數據,發現每頁評論的條數為15條,故在此每次遍歷15條,即第一次的offset為0的話,下一次遍歷的offset則為15,同樣日期也可以用range的方法進行賦值:

#抓取20號到23號的數據 date = range(20,23) for day in date:for page in range(0,100):url1 = url.format(page*15,str(day))

三.load其中的json內容,從中篩選提取出自己需要的數據:

? ?通過將得到的json數據解析后,發現其中評論在cmt和hcmt兩個key內,通過loads的方法將json轉化為字典:

def get_json(url,k_name):json_str = requests.get(url=url,headers=headers).contentdata = json.loads(json_str)data = data[str(k_name)]return data

? 樓主中間嘗試了很多次,發現有時會經常出現重復的數據,經過研究發現,cmt中是最新的評論,而hcmt中是最熱的10條評論,只有10條(怪不得一直看到這幾條。。。)

? ?于是采用對整體進行cmt采取遍歷,但是在遍歷中,只對hcmt中的評論的content內容取1次的方法,在外圍設置cnt計數實現:

# 最新短評 data_cmts = get_json(url1,'cmts') # 最熱短評 data_hcmts = get_json(url1, 'hcmts') for data_cmt in data_cmts:item = {}if cnt == 0:for data_hcmt in data_hcmts:#最熱評論print(data_hcmt['content'])cnt+=1#輸出最新評論print(data_hcmt['content'])

?

四.保存成csv格式的文件

? ?最終將文件保存,由于評論數據中不止有評論內容,還包含評論時間,評論作者,評論地點等一些內容,所以采用了pandas的方法來存儲成csv格式,考慮到采集數據過程中可能會出現異常,故使用try,,except的格式來進行,當采集到的數據為空時,就表示采集完畢,保存到csv文件中:

??

df = pd.DataFrame(columns=['city','content']) try:....item = {}item['city'] = data_cmt['cityName']item['content'] = data_cmt['content']item['date'] = data_cmt['startTime']df = df.append(item, ignore_index=True) except Exception as e:df.to_csv('train_set.csv',encoding='utf_8_sig')continue

完整代碼可以移步github,水平不足,希望多多拍磚,感謝!

github:

https://github.com/476736794/-

總結

以上是生活随笔為你收集整理的Python爬虫爬取猫眼电影风语咒影评评论信息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。