当前位置:   article > 正文

爬取微博热搜榜_微博热搜实时爬取

微博热搜实时爬取

201911081102 汤昕宇 现代信息检索导论实验一

程序运行的截图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GimpWjCB-1639531088565)(程序运行截图.png)]

当时微博热搜的截图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lDXRgrxa-1639531088568)(微博热搜截图.png)]

对应的CSV截图为:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tVtxici8-1639531088570)(csv截图.png)]

我再CSV中存取了他此时热搜榜的全部信息与当时的热度。

原理如下:

① 首先获取当前的时间

② 然后获取微博的URL

③ 根据网页上的源代码手动构造参数

④ 发送请求获取相应对象

⑤ 将获取到的数据保存到CSV中

代码如下:

import requests
from lxml import etree
import time
import csv

def gettime():
    # 获取当前的时间
    print("当前的时间是:", time.strftime("%Y-%m-%d %H:%M:%S"))
    pass

def save(name, hot):
    lsname = []
    for i in range(0, len(name)):
        lsname.append([name[i], hot[i]])
    with open("hot.csv", "w", encoding='utf-8') as csvfile:
        writer = csv.writer(csvfile)
        writer.writerows(lsname)

if __name__ == "__main__":

    gettime()

    # 确认目标的 url
    _url = "https://s.weibo.com/top/summary"

    # 手动构造请求的参数
    _headers = {
        'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36 Edg/96.0.1054.53",
        "cookie" : "SINAGLOBAL=5701031797732.083.1638971150198; SUB=_2AkMW7DFkf8NxqwFRmP0QzGvkaIR1zgnEieKgsMC_JRMxHRl-yT9jqhErtRB6PWwfi8IMi4nS63fCLKIwRiYKqexEzF_Q; SUBP=0033WrSXqPxfM72-Ws9jqgMF55529P9D9WFPkNiIHiOqUjBBn8.B.qFu; _s_tentry=cn.bing.com; Apache=9978275422977.867.1639488984604; UOR=,,cn.bing.com; ULV=1639488984639:4:4:1:9978275422977.867.1639488984604:1639061325022",
        # "Referer": "https://www.baidu.com/link?url=j4BATujs6r1tDJgq8AqwTKYFP94_YcXPDXrDW9XKN2wmO0CyWck18MN0ES1bM5gX&wd=&eqid=fdbaa254000e24100000000261b05229"
    }

    # 发送请求
    _response = requests.get(_url, headers = _headers)
    _data = _response.text
    # print(data_)

    # 提取数据
    html_obj = etree.HTML(_data)

    # 置顶微博: 1.名称 2.url 链接
    name_top = html_obj.xpath('//*[@id="pl_top_realtimehot"]/table/tbody/tr[1]/td[2]/a/text()')[0]

    url_top = html_obj.xpath('//*[@id="pl_top_realtimehot"]/table/tbody/tr[1]/td[2]/a/@href')[0]
    url_top = "https://s.weibo.com/" + url_top

    print(f'置顶微博:{name_top},链接地址:{url_top}')

    # 热搜榜微博:1.名称 2.序号 3.热度
    # 热搜榜名称
    name_list = html_obj.xpath('//td/span/preceding-sibling::a/text()')
    print(len(name_list))
    print(name_list)
    # 热搜榜热度
    hot_list = html_obj.xpath('//td/span/text()')
    print(len(hot_list))
    print(hot_list)

    # 保存在CSV中
    save(name_list, hot_list)


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
print(len(hot_list))
print(hot_list)

# 保存在CSV中
save(name_list, hot_list)
  • 1
  • 2
  • 3
  • 4
  • 5

  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/102207
推荐阅读
相关标签
  

闽ICP备14008679号