爬蟲之獲取貓眼電影10W評論

2022-01-16 16:48:06 字數 2510 閱讀 2342

哪吒之魔童降世:

於是又上網查,終於看到一篇文章說到開發者模式可以直接切換到手機模式;

切換開發者模式為手機模式

每條請求所對應的資料

#movieid       表示電影id

#offset 表示偏移量

#limit 一頁顯示多少資料

#ts 當前時間戳

我們在上面的方法基礎上改變時間戳後發現也只能爬取1000條資料,我們只能另尋他法;

檢視每頁中最後一條資料的starttime

根據上面的原理我們制定爬取方案:

因為我們請求網頁所得到的響應資料只用15條,且可以獲取到最後一條資料的starttime;

第一次請求url中的starttime我們用當前時間,並獲取響應資料中最後一條資料的starttime;

第二次請求時我們將時間替換為第一次請求時響應資料中最後一條資料的starttime,依次類推

from pymongo import

mongoclient

my_client = mongoclient("

127.0.0.1

",27017)

mdb = my_client["

movie_rating

"] #

指定連線電影評分的庫名

print(mdb.movie_comment.find({}).count()) #

檢視表中一共有多少條資料

指定儲存資料庫

import

time

import

random

import

datetime

import

requests

from mongo_db import

mdb# 獲取當前時間轉換為2019/8/5 17:31:15形式空格用%20替換

now_time=datetime.datetime.now().strftime('

%y-%m-%d %h:%m:%s

').replace('

','%20')

headers =

time.sleep(random.random())

# 從當前時間往前爬取2000個url的資料,每個url有15條資料

for num in range(1,2000):

url = "

".format(now_time)

print("

".format(num))

response =requests.get(url).json()

now_time = response["

cmts

"][-1]["

starttime"]

for movie_info in response["

cmts"]:

cityname = movie_info["

cityname"]

content = movie_info["

content"]

user_id = movie_info["id"

] nickname = movie_info["

nickname"]

movieid = movie_info["

movieid"]

gender = movie_info.get("

gender")

ifnot

gender:

gender = "暫無"

comment_info =

# 因為我們建立了唯一索引,所以我們在插入資料時如果有重複的會報錯,這裡做了異常處理

Python之爬蟲 貓眼電影

usr bin env python coding utf 8 import json import requests import re import time 貓眼多了反爬蟲,速度過快,則會無響應,所以這裡多了乙個延時等待 from requests.exceptions import requ...

python爬蟲學習之獲取貓眼電影排名前10

我們用正規表示式來完成這個任務,並把讀取到的內容寫入到文字中。首先獲取該網頁的html 注意千萬別用開發者模式檢視網頁的原始碼,原始碼可能和response.text不一樣 然後用python的第三方庫,requests庫進行網頁html的爬取 注意 1 在獲取源 之前我們要設定一下user age...

利用爬蟲獲取貓眼電影熱門前100資料

實現方法 1 訪問 獲取頁面原始碼 2 解析頁面 得到想要的資料 3 迴圈爬取多個頁面 4 把資料寫入本地檔案 需求 爬取貓眼電影前100的電影資訊 實現方法 訪問 獲取頁面原始碼 解析頁面,得到想要的資料 迴圈爬取多個頁面 把資料寫入本地檔案 import requests from reques...