pyhton爬取爱豆(李易峰)微博评论

简介: 今日目标:微博,以李易峰的微博为例:

今日目标:微博,以李易峰的微博为例:

https://weibo.com/liyifeng2007?is_all=1

然后进入评论页面,进入XHR查找真是地址:

https://weibo.com/aj/v6/comment/big?ajwvr=6&id=4353796790279702&from=singleWeiBo

很明显,是动态的,抓取也是按我以前写的那些方法来,就不一一说了,他这里最重要的还是那串数字,所以我们只要在第一个网址哪里把那串数字找出来就算成功一半了,这次需要用到re正则,嗯,这个我不擅长,不过没事,应该还是可以搞到的:

target = 'https://weibo.com/liyifeng2007?is_all=1'
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36',
    'cookie': 'SUB=_2AkMowDDgf8NxqwJRmPoSyWnqao53ywzEieKenME7JRMxHRl-yT9kqnEjtRB6A0AeDzsLF_aeZGlWOMf4mEl-MBZZXqc_; SUBP=0033WrSXqPxfM72-Ws9jqgMF55529P9D9WWcpq860VQlJcIRRNP9pzqS; SINAGLOBAL=1033839351635.7524.1604108279474; login_sid_t=c071efc77911ceace152df2be5986e09; cross_origin_proto=SSL; WBStorage=8daec78e6a891122|undefined; _s_tentry=-; Apache=8275565331127.246.1604195643561; ULV=1604195643568:3:1:1:8275565331127.246.1604195643561:1604122447982; wb_view_log=1920*10801; UOR=,,editor.csdn.net'
}
 
 
html = requests.get(target,headers=headers).text
 
 
for each in re.findall('<a name=(.*?)date=',html):
    real_id = each.split(" ")[0]
    filename = each.split("\\")[-2].replace('"',"").replace(":",".")
    print(real_id,filename)

输出如下:

第一个就是我们需要的ID,后面则是发微博的时间,我们用它来做存储评论数据的文件名称。

然后我们把ID传入第二个网址:

comment_url = f'https://weibo.com/aj/v6/comment/big?ajwvr=6&id={real_id}&from=singleWeiBo'

当然这个是抓取热度的,如你要抓取最新回复的,需要下面这个:

comment_url = f'https://weibo.com/aj/v6/comment/big?ajwvr=6&id={read_id}&page=1'

拿到这个就简单了,JSON 数据,直接进json网站解析就行,然后找到我们需要的数据,这里就直接上代码了:

comment_url = f'https://weibo.com/aj/v6/comment/big?ajwvr=6&id={real_id}&page=1'
res = requests.get(comment_url,headers=headers).json()["data"]["html"]
 
 
# 提取评论人和评论内容
conmment = re.findall('ucardconf="type=1">(.*?)</div>', res)
 
 
for each in conmment:
      # 将 内容里的那些表情替换
      each = re.sub('<.*?>','',each)
      print(each)
 
 

re 不太会用,大家将就着看,主要是能把数据搞到手,这个最重要,哈哈…

对比一下:

把那些表情给去除了,有些只发表情没法字的就会只显示名字,这个是正常的,其余就是一毛一样了。
数据拿到了,咱们就存储到本地吧,全部代码:

# -*- coding: utf-8 -*-
"""
Created on 2020-11-18
@author: 李运辰
"""
 
 
#https://weibo.com/liyifeng2007?is_all=1
 
 
import requests
import re,os
 
 
url = 'https://s.weibo.com/?topnav=1&wvr=6'
target = 'https://weibo.com/liyifeng2007?is_all=1'
 
 
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36',
    'cookie': 'SUB=_2AkMowDDgf8NxqwJRmPoSyWnqao53ywzEieKenME7JRMxHRl-yT9kqnEjtRB6A0AeDzsLF_aeZGlWOMf4mEl-MBZZXqc_; SUBP=0033WrSXqPxfM72-Ws9jqgMF55529P9D9WWcpq860VQlJcIRRNP9pzqS; SINAGLOBAL=1033839351635.7524.1604108279474; login_sid_t=c071efc77911ceace152df2be5986e09; cross_origin_proto=SSL; WBStorage=8daec78e6a891122|undefined; _s_tentry=-; Apache=8275565331127.246.1604195643561; ULV=1604195643568:3:1:1:8275565331127.246.1604195643561:1604122447982; wb_view_log=1920*10801; UOR=,,editor.csdn.net'
}
 
 
html = requests.get(target,headers=headers).text
 
 
for each in re.findall('<a name=(.*?)date=',html):
    real_id = each.split(" ")[0]
    filename = each.split("\\")[-2].replace('"',"").replace(":",".")
    # print(real_id,filename)
 
 
    # print(filename)
    for page in range(1,11):
        comment_url = f'https://weibo.com/aj/v6/comment/big?ajwvr=6&id={real_id}&page={page}'
        res = requests.get(comment_url,headers=headers).json()["data"]["html"]
 
 
        # 提取评论人和评论内容
        conmment = re.findall('ucardconf="type=1">(.*?)</div>', res)
        # conmment = re.findall('</i></a>(.*?) </div>', res)
        for each in conmment:
            # 将 内容里的那些表情替换
            each = re.sub('<.*?>','',each)
            print(each)
            f_name = "./images/"+filename
            with open(f_name+"_李运辰.txt","a",encoding="utf-8") as f:
                f.write(each)
                f.write("\n")
 
 
 
 

只是测试,所以就只爬了十几页:

爬下来后可以自己对比一下:

搞定!!!!

相关文章
|
4月前
|
数据采集 JSON 数据格式
Python大麦网演唱会数据爬取
Python大麦网演唱会数据爬取
237 0
|
8月前
|
数据采集 Web App开发 开发者
探秘Python爬虫技术:王者荣耀英雄图片爬取
探秘Python爬虫技术:王者荣耀英雄图片爬取
|
数据采集 开发工具 Python
朋友很喜欢打篮球,我用Python爬取了1000张他喜欢的NBA球星图片送给他【内附源码】
朋友很喜欢打篮球,我用Python爬取了1000张他喜欢的NBA球星图片送给他【内附源码】
146 0
|
数据采集 大数据 Python
2个月精通Python爬虫——3大爬虫框架+6场实战+分布式爬虫,包教包会
阿里云大学在线工作坊上线,原理精讲+实操演练,让你真正掌握云计算、大数据技能。 在第一批上线的课程中,有一个Python爬虫的课程,畅销书《精通Python网络爬虫》作者韦玮,带你两个月从入门到精通。
6908 0
|
Android开发
Python爬虫入门教程 45-100 Charles抓取兔儿故事-下载小猪佩奇故事-手机APP爬虫部分
1. Charles抓取兔儿故事背景介绍 之前已经安装了Charles,接下来我将用两篇博客简单写一下关于Charles的使用,今天抓取一下兔儿故事里面关于小猪佩奇的故事。爬虫编写起来核心的重点是分析到链接,只要把链接分析到,剩下的就好办了。
1264 0
|
数据采集 Web App开发 iOS开发
Python爬虫-爬取贴吧中每个帖子内的楼主图片
1.根据输入的关键字筛选贴吧 2.获得贴吧内的帖子,支持分页爬取 3.爬取并下载帖子内仅和楼主相关的图片
2749 0
|
数据采集 Python
【Python】从0开始写爬虫——转身扒豆瓣电影
豆瓣就比较符合这个“明人不说暗话”的原则。所以我们扒豆瓣,不多说,直接上代码 from scrapy import app import re header = { 'User-Agent': 'Mozilla/5.
1121 0
|
数据采集 中间件 数据库
Python爬虫-小测验
一、 使用scrapy.Selector或BeautifulSoup,实现以下需求(30分) (1)读取给定的dangdang.html页面内容,注:编码为gbk(5分) (2)获取页面中所有图书的名称,价格,作者,出版社及图书图片的url地址(...
1273 0
|
数据采集 Web App开发 Python
欢迎使用CSDN-markdown编辑器Python爬虫初接触,学会爬虫不抓美女图片干啥!
学习编程语言是很枯燥的,尤其是对一个编程零基础的人来说,更为枯燥!所以我们要从枯燥的学习中找点乐趣和动力!比如,抓点小姐姐的图片 我们的目标选择唯一图库,url自己去找【人工呲牙笑】 这个网站没有反爬,特别好爬,打开主页后,找到美女图片分类 上面分类没有这个分类,自己想办法进入哦。
1614 0
|
数据采集 JSON 数据格式
Python爬虫框架scrapy抓取旅行家网所有游记!从此出游不发愁!
Scrapy是一个用 Python 写的 Crawler Framework ,简单轻巧,并且非常方便。Scrapy 使用 Twisted 这个异步网络库来处理网络通讯,架构清晰,并且包含了各种中间件接口,可以灵活的完成各种需求。
1561 0