资源简介
内含三个文件,分别是:爬取微博、数据预处理、爬取并处理。基于python3,实现了高效爬取微博数据,并结合正则表达式对数据进一步处理。其中亦包含对微博评论和点赞等其他信息的爬取,小小修改一下代码即可。
代码片段和文件信息
# -*- coding:utf-8 -*-
from lxml import html
import requests
import json
import os
import time
import re
from time import sleep
### 爬取微博内容
class CrawlWeibo:
# 获取指定博主的所有微博cards的list
def getCards(self id page):
# id(字符串类型):博主的用户id;page(整型):微博翻页参数
ii = 0
list_cards = []
while ii < page:
ii = ii + 1
url = ‘https://m.weibo.cn/api/container/getIndex?type=uid&value=‘ + id \
+ ‘&containerid=107603‘ + id + ‘&page=‘ + str(ii)
response = requests.get(url headers=headers)
ob_json = json.loads(response.text) # ob_json为dict类型
list_card = ob_json[‘data‘][‘cards‘]
if len(list_card)==0 and ii==1:
break
else:
list_cards.append(ob_json[‘data‘][‘cards‘]) # ob_json[‘data‘][‘cards‘]为list类型
return list_cards # 返回所有页的cards
# 获取某条微博的热门评论或评论的list
def getComments(self id page): # id(字符串类型):某条微博的id;page(整型):评论翻页参数
url = ‘https://m.weibo.cn/api/comments/show?id=‘ + id + ‘&page=‘ + str(page)
response = requests.get(url headers=headers)
ob_json = json.loads(response.text)
list_comments = []
if ‘data‘ in ob_json:
if ‘hot_data‘ in ob_json[‘data‘]:
list_comments = ob_json[‘data‘][‘hot_data‘]
else:
list_comments = ob_json[‘data‘][‘data‘]
return list_comments # 返回某条微博下评论
def getAll(self id page path): # id为博主uid,page为爬取页数,path为保存路径
list_cards = self.getCards(id page)
if len(list_cards)!=0:
count_weibo = 1
page_weibo = 1
# 遍历当页所有微博,保存内容,并根据id查找输出热门评论
ff = open(path + ‘%s.txt‘%id ‘w‘ encoding=‘utf-8‘)
for cards in list_cards:
for card in cards:
if card[‘card_type‘] == 9: # 过滤出微博
# if card[‘card_type‘] == 9 and ‘raw_text‘ not in card[‘mblog‘]: # 过滤出原创微博
# print(‘正在爬取第‘ + str(page_weibo) + ‘页 第‘ + str(count_weibo) + ‘条card‘)
mid = card[‘mblog‘][‘id‘]
created_at = card[‘mblog‘][‘created_at‘]
# 获取保存文本信息
if not card[‘mblog‘][‘isLongText‘]: # card[‘mblog‘][‘isLongText‘] == ‘false‘
text = card[‘mblog‘][‘text‘]
else:
url = ‘https://m.weibo.cn/statuses/extend?id=‘ + mid
response = requests.get(url headers=headers)
ob_json = json.loads(response.text) # ob_json为dict类型
text = ob_json[‘data‘][‘longTextContent‘]
tree = html.fromstring(text)
text = tree.xpath(‘string(.)‘) # 用string函数过滤掉多余标签
ff.write(text + ‘\n‘)
# print(text)
count_weibo = count_weibo + 1
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5392 2019-01-29 15:31 weibo_crawl\CrawlAndDeal.py
文件 942 2018-12-22 20:08 weibo_crawl\Deal.py
文件 5665 2019-01-29 15:30 weibo_crawl\WeiboCrawl.py
目录 0 2019-01-29 15:33 weibo_crawl\weibo\
目录 0 2019-01-29 15:33 weibo_crawl\
相关资源
- 去停用词、测试数据
- python3.4中文学习手册chm
- python3网络爬虫与开发实战崔庆才PDF百
- python300G视频书籍教程.zip
- 基于Python专业网络爬虫的设计与实现
- 爬虫视频案例课程----崔庆财
- PYQT5+图片拖拽
- python3-bayes朴素贝叶斯
- 最近邻kNN-python3源码和数据
- 微博关键字爬虫代码
- python爬取豆瓣每个账户对电影的评分
- 使用python对淘宝商品信息数据进行爬
- Python_百科爬虫
- python爬虫Scrapy(一)-我爬了boss数据
- sublime_package_control-python3.zip
- 豆瓣电影信息Python爬虫存入MongoDB.一分
- Python爬虫文件:爬取图片的程序.py
- python爬取新浪微博源代码
- python3.5和python3.6的anaconda,以及pycha
- 廖雪峰最新Python3教程
- Python搜索爬虫抓取超高清视频
- 微博图片视频小爬虫
- 小甲鱼零基础入门学习Python+全套源码
- pygraphviz python3.4 轮子
- 基于Python爬虫的股票信息爬取保存到
- python3程序设计习题答案第3版
- Python简单网页爬虫
- Python爬虫每日抓取必应壁纸
- Python 3网络爬虫开发实战
- python3.8爬取拉勾教育mp4视频解密m3u8到
评论
共有 条评论