当前位置: 首页 > article >正文

微博热点信息爬虫

最近看到一个项目挺有意思的,难度也不高,贴出来分享一下。

一、爬取地址

        观察网址,我们发现当查询某个话题时,微博网址后面会带参数q,后面那个refer参数可以忽略。因此,我们想要爬取某个话题的时候只需要修改q即可。

https://s.weibo.com/weibo?q=%E9%BB%91%E7%A5%9E%E8%AF%9D%E6%82%9F%E7%A9%BA&Refer=topic_weibo

二、模拟浏览器头,构造请求

        首先按F12打开开发者工具,找到自己所需要的信息,后端发给前端的信息分为很多种,大部分信息都在文档里面,可以先用筛选确定。

        在微博这里我们要的信息就是第一条。

        重点关注这三个地方。

        URL与我们在浏览器看到的相同,有些网站为了防爬会在用户请求时调用js代码重新构造请求URL,这里URL没变就不用管。

        请求方法是GET,GET请求头构造比较简单,如果是POST需要填充表单或者其它参数,GET方法就按浏览器请求头构造。

        Cookie是缓存,当我们登录网站的时候,我们的登录信息会留在cookie里面,这样就避免了下次重新登录。因此登陆之后复制Cookie的才有用,微博查询时一定要登录,否则返回的内容是空的。

        接下来就构造请求头,用python的request库。user-agent是你的浏览器信息,换不换随意。

headers = {
    'cookie':'复制你自己的浏览器Cookie,一定要先登录',
    "user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36",
}
三、开始爬取

        因为爬取下来的文档是html格式的,所以我们用文档树来提取,安装lxml库就行,如果是json格式的就按照字典来提取数据。

import requests
from lxml import etree
      
headers = {
    'cookie':'',
    "user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36",
}

url = 'https://s.weibo.com/weibo?q=%E9%BB%91%E7%A5%9E%E8%AF%9D%E6%82%9F%E7%A9%BA&Refer=topic_weibo'
res = requests.get(url,headers=headers)
resXpath = etree.HTML(res.text)  #解析爬取的内容
四、提取数据


http://www.kler.cn/a/577968.html

相关文章:

  • Java链接redis
  • tomcat的安装与配置(包含在idea中配置tomcat)
  • 景联文科技:以精准数据标注赋能AI进化,构筑智能时代数据基石
  • RAG技术的PDF智能问答系统
  • 【图像阈值分割、区域分割、边缘分割】
  • 计算机毕业设计SpringBoot+Vue.js高校专业实习管理系统(源码+文档+PPT+讲解)
  • CentOS Docker 安装指南
  • mounted() 钩子函数
  • 大数据学习(58)-DolphinScheduler使用DataX实现数据同步
  • 如何在DigitalOcean的H100 GPU服务器上运行DeepSeek R1 模型
  • leetcode日记(85)验证二叉搜索树
  • 深度学习驱动的跨行业智能化革命:技术突破与实践创新
  • 鸿蒙Next-应用检测、安装以及企业内部商店的实现
  • 常见的算法题python
  • SecureCRT 文件上传下载操作指南
  • PyTorch系列教程:Tensor.view() 方法详解
  • <script setup>和export default { setup() { ... } }区别
  • 计算机网络-服务器模型
  • pom.xml配置(mybatisplus增删改查实现;PageInfo分页实现;JSONObject实现)
  • Redis 内存淘汰策略深度解析