爬取李子柒微博評論並分析

2022-09-07 07:39:13 字數 2896 閱讀 3011

微博主要分為網頁端、手機端和移動端。微博網頁版反爬太厲害,因此選擇爬取手機端。

詞頻分析:

在開發者工具下,network-xdr下找到以下資訊:

此外,還需要對比request url的組成,找出翻頁規律:

request url: url:

經過對比發現,翻頁時的兩個關鍵資訊為max_id和max_id_type,只要找到這兩個資訊,就可以對url進行拼接,從而實現多次爬取。這兩個資訊可以在之前返回的json檔案中的preview找到。

接下來是爬蟲程式的設計:

# -*- coding: utf-8 -*-

import requests

import time

import os

import csv

import sys

import json

from bs4 import beautifulsoup

import importlib

importlib.

reload

(sys)

# 要爬取熱評的起始url

url =

''# cookie ua要換成自己的

headers =

defget_page

(max_id, id_type)

: params =

try:

r = requests.get(url, params=params, headers=headers)

if r.status_code ==

200:

return r.json(

)except requests.connectionerror as e:

print

('error'

, e.args)

defparse_page

(jsondata)

:if jsondata:

items = jsondata.get(

'data'

) item_max_id =

item_max_id[

'max_id'

]= items[

'max_id'

] item_max_id[

'max_id_type'

]= items[

'max_id_type'

]return item_max_id

defwrite_csv

(jsondata)

: datas = jsondata.get(

'data'

).get(

'data'

)for data in datas:

created_at = data.get(

"created_at"

) like_count = data.get(

"like_count"

) source = data.get(

"source"

) floor_number = data.get(

"floor_number"

) username = data.get(

"user"

).get(

"screen_name"

) comment = data.get(

"text"

) comment = beautifulsoup(comment,

'lxml'

).get_text(

) writer.writerow(

[username, created_at, like_count, floor_number, source,

json.dumps(comment, ensure_ascii=

false)]

)# 存為csv

path = os.getcwd()+

"/weibocomments.csv"

csvfile =

open

(path,

'w',encoding =

'utf-8'

)writer = csv.writer(csvfile)

writer.writerow(

['usename'

,'time'

,'like_count'

,'floor_number'

,'sourse'

,'comments'])

maxpage =

50#爬取的數量

m_id =

0id_type =

0for page in

range(0

, maxpage)

:print

(page)

jsondata = get_page(m_id, id_type)

write_csv(jsondata)

results = parse_page(jsondata)

time.sleep(1)

m_id = results[

'max_id'

] id_type = results[

'max_id_type'

]

停詞表採用的是哈工大停詞表

Python爬蟲之微博評論爬取

import requests 請求 import time 時間 from fake useragent import useragent 隨機請求頭 import re 正則模組 登入微博,f12開啟瀏覽器抓包功能 直接攜帶cookie 引數請求即可 這個方法很簡單,但是只能爬取50頁左右,如果...

Python爬取新浪微博評論資料,寫入csv檔案中

操作步驟如下 2.開啟m.weibo.cn 3.查詢自己感興趣的話題,獲取對應的資料介面鏈結 4.獲取cookies和headers coding utf 8 import requests import csvimport osbase url cookies headers path os.ge...

自動獲取cookie,爬取新浪微博熱門評論

目錄 一 前言 二 網盤 selenium僅僅用於獲取cookie,實際爬取將直接使用requests請求,以保證爬取效率 話不多說,也不複雜,直接上 了,關鍵的地方有注釋 import requests import selenium from selenium import webdriver ...