微博爬取長津湖博文及評論
# Changjin Lake film data from Weibo
# @Time: 20211006
# @Author: heheyang
import requests
import json
import re
import pprint
import pandas as pd
def comments_singlePage_crawl(url,headers,comments_info, id):
"""
評論單頁爬取
:param url:
:param headers:
:return:
"""
# 獲取 html 碼
html = requests.get(url, headers).text
# json 解析 html
html_dict = json.loads(html)
comments_data = html_dict["data"]["data"]
for comment in comments_data:
comments_info["id"].append(id)
comments_info["date"].append(comment["created_at"])
# 篩選出 text 中的文字資訊
text = re.sub("<span(.*?)</span>", "", comment["text"])
text = re.sub("<a(.*?)</a>", "", text)
comments_info["text"].append(text)
def weibo_bowen_singelPage_crawl(url,headers,mblog_info,comments_info):
"""
單頁爬取函式
:param url: 待爬取 url
:param headers: 請求頭
:param mblog_info: mblog 資訊儲存字典
"""
# 獲取 html 碼
html = requests.get(url,headers).text
# json 解析 html
html_dict = json.loads(html)
users = html_dict["data"]["cards"]
# 博文儲存
for user in users:
mblog = user["mblog"]
mblog_info["id"].append(mblog["id"])
mblog_info["date"].append(mblog["created_at"])
# 篩選出 text 中的文字資訊
text = re.sub("<span(.*?)</span>","",mblog["text"])
text = re.sub("<a(.*?)</a>","",text)
mblog_info["text"].append(text)
# 構造評論的 url
comments_url = "%s&mid=%s&max_id_type=" % (mblog["id"], mblog["id"])
# 儲存評論
i = 0
while True:
try:
comments_url_ = comments_url + str(i)
comments_singlePage_crawl(comments_url_, headers, comments_info, mblog["id"])
i += 1
except:
break
pprint.pprint(comments_info)
def weibo_bowen_data_crawl(url,headers):
"""
博文資訊爬取函式
:param url: 待爬取網站 url
:param headers: 請求頭
:return: 博文資訊儲存字典 mblog_info
"""
# 博文資訊儲存字典
mblog_info = {
"id": [],
"date": [],
"text": []
}
# 評論資訊儲存字典
comments_info = {
"id":[],
"date":[],
"text":[],
}
# 爬取 10 頁博文
for i in range(1,10):
url_ = url + str(i)
# 新增博文資訊
weibo_bowen_singelPage_crawl(url_, headers, mblog_info,comments_info)
return mblog_info,comments_info
def bowen_data_store(mblog_info,comments_info):
"""
資料處理並儲存到 excel 中
:param mblog_info: 博文資訊
:return: 儲存到 excel
"""
# 儲存表 1
data = pd.DataFrame(mblog_info)
data["num"] = data.index + 1
data["keyword"] = ["Film Changjin Lake"]*len(data["num"])
df = data.loc[:,["num","keyword","id","date","text"]]
df.to_excel("bowen_data.xlsx",sheet_name="Sheet1")
# 儲存表 2
comments_data = pd.DataFrame(comments_info)
comments_data["num"] = comments_data.index + 1
df_c = comments_data.loc[:,["num","id","date","text"]]
df_c.to_excel("bowen_comments_data.xlsx",sheet_name="Sheet1")
if __name__ == '__main__':
# 微博 url
url =外匯跟單gendan5.com "%3D1%26q%3D%E9%95%BF%E6%B4%A5%E6%B9%96&type=uid&value=7377392724&containerid=1076037377392724&page=" # 長津湖微博
# 請求頭
headers = {
"cookie":" 自行新增 ",
"user-agent":" 自行新增 "
}
mblog_info,comments_info = weibo_bowen_data_crawl(url,headers)
bowen_data_store(mblog_info,comments_info)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2794938/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python實現微博爬蟲,爬取新浪微博Python爬蟲
- selenium + xpath爬取csdn關於python的博文博主資訊Python
- Jquery實現微博分享評論表情特效jQuery特效
- Scrapy爬取新浪微博移動版使用者首頁第一條微博
- Scrapy框架的使用之Scrapy爬取新浪微博框架
- 一個批次爬取微博資料的神器
- 微博-指定話題當日資料爬取
- 爬取微博圖片資料存到Mysql中遇到的各種坑mysql儲存圖片爬取微博圖片MySql
- 爬蟲實戰(一):爬取微博使用者資訊爬蟲
- JB的Python之旅-爬蟲篇-新浪微博內容爬取Python爬蟲
- Python 超簡單爬取微博熱搜榜資料Python
- python實現微博個人主頁的資訊爬取Python
- Python網路爬蟲2 - 爬取新浪微博使用者圖片Python爬蟲
- 利用爬蟲獲取當前博文數量與字數爬蟲
- Python 超簡單爬取新浪微博資料 (高階版)Python
- vue獲取微博授權URLVue
- 「玩轉Python」打造十萬博文爬蟲篇Python爬蟲
- GitHub 上這款新浪微博爬蟲專案,讓你輕鬆掌握微博資料!Github爬蟲
- 爬取天貓商品評論
- 微博收集
- 微博動漫:2020微博動漫白皮書
- 一篇文章教會你使用Python定時抓取微博評論Python
- 利用 Python 爬取“工商祕密”微博,看看大家都在關注些什麼?Python
- PHP基於laravel框架獲取微博資料之一 模擬新浪微博登入PHPLaravel框架
- 《微博營銷》——微博能為你做什麼
- 微博財報:2023年Q3微博營收32.07億元 同比增長2%營收
- 博文標題
- 測試博文
- 長津湖官方:《長津湖之水門橋》票房破34億 榮登中國影史票房紀錄前十
- 為爬蟲獲取登入cookies: 使用Charles和requests模擬微博登入爬蟲Cookie
- 微博財報:2018年Q1微博淨利潤9910萬美元 同比增長111%
- 微博財報:2019年Q3微博淨營收4.678億美元 同比增長2%營收
- 從SpringBoot構建十萬博文聊聊快取穿透Spring Boot快取穿透
- 新浪微博動態 RSA 分析圖文+登入
- 【Python爬蟲實戰】使用Selenium爬取QQ音樂歌曲及評論資訊Python爬蟲
- 如何利用 Selenium 爬取評論資料?
- 母嬰類微博怎麼運營?還是在玩微博呢?還是被微博玩呢?
- 9.1作業博文