爬取某网站的内容、得不到html页面的内容

2023-10-29

Python爬取

1.爬取内容:对某网站内容与热度进行爬取

分析:我们所需的数据是热搜榜的1—10,第一个数据pass

divs = html.xpath('//div[@class="wbpro-side-card7"]/div[position()>1]')

2.解决没有热力的问题:

别的内容都有热力,但是内容有的热搜内容没有热力,我们取值是会有问题。

解决方法:

if len(hot) == 0: 
        hot = 0
    else:
        hot = hot[0]

3.先解决代码报错:

1.UnicodeDecodeError:'utf-8’e0dec can’t decode byte 0xca in position 339: invalid continuation byte

content = response.content.decode('utf8')

这个问题很明显,就是编码错误,我们添加参数:

content = response.content.decode('utf8','ignore')

2.查看我们的content,发现有乱码:红框

在这里插入图片描述

这是编码问题,我们可以看到蓝框的编码格式为gbk,所以我们解码方式改为gbk即可。

3.虽然解决了乱码问题,但我们发现我们的content内容不是微博的html,这岂不是完完?

在这里插入图片描述
这就得cookie发挥作用了,我们在headers里面把微博的cookie加进去即可。

注意了:把cookie加进去后我们还要看微博html页面的编码方式,记得改,否则又是乱码。

4.完整代码

import requests
from lxml import etree

url = "https://weibo.com/"
headers = {
        "user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36",
        "referer":"https://www.baidu.com/",
        "cookie":"XSRF-TOKEN=6RDFJg1UNTj_DEvPoqRTAUG9; login_sid_t=ef0d49f7574fc9751c749ba1de65a0b7; cross_origin_proto=SSL; _s_tentry=weibo.com; Apache=6183611172558.001.1668847725620; SINAGLOBAL=6183611172558.001.1668847725620; ULV=1668847725622:1:1:1:6183611172558.001.1668847725620:; wb_view_log=1707*10671.5; appkey=; WBtopGlobal_register_version=2022111916; SUB=_2A25OfOiaDeRhGeFN6lAV9S_EyjuIHXVtCF1SrDV8PUNbmtANLXLSkW9NQHs9kD7YvLPzwuZfd_ycV5SvA3egivkh; SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9WW_.LS0eBuoJRgiGqUDM.ax5JpX5o275NHD95QNe02ESh-p1h2NWs4DqcjMi--NiK.Xi-2Ri--ciKnRi-zNS0epeoBfeKnpS7tt; ALF=1669452618; SSOLoginState=1668847818; wvr=6; webim_unReadCount=%7B%22time%22%3A1668849960587%2C%22dm_pub_total%22%3A1%2C%22chat_group_client%22%3A0%2C%22chat_group_notice%22%3A0%2C%22allcountNum%22%3A5%2C%22msgbox%22%3A0%7D; WBPSESS=bSNb1S0dm5_Di4PbdV1iF-fRcZmZMnHImuU-f9Sg5ZfKmlaBX2ffAcb2wpbO6TG5EwxBdK63gFe2sBp1ieb5z9s7XxvQQYRktTJx7xZQTsSPM1jWIqVqNgz9OYf-CPeJYKyJDBzA8pCoJUez48onGA=="
        }
response = requests.get(url,headers = headers)
content = response.content.decode('utf8','ignore')
html = etree.HTML(content)
divs = html.xpath('//div[@class="wbpro-side-card7"]//div[position()>1]')
weibo = []
for div in divs:
    eg={}
    content = div.xpath('./a//div[@title]/text()')[0]
    hot = div.xpath('./a/div/div[3]/text()')
    if len(hot) == 0: 
        hot = 0
    else:
        hot = hot[0]
    print(content,hot)
    eg = {
        "content":content,
        "hot":hot
        }
    weibo.append(eg)

这样我们就爬取到某网站的内容与热度啦!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

爬取某网站的内容、得不到html页面的内容 的相关文章

随机推荐

  • Java缓存 @上源码

    用途 提高响应速度 减轻后台处理负担 分类 1 前端 客户端浏览器缓存 CDN加速 代理服务器缓存 nginx 2 后端 本地缓存 Guava Cache Ehcache 分布式缓存 Memcache Redis 数据库缓存 按照存放介质类
  • 奥的斯服务器故障显示m什么意思,奥迪斯电梯故障代码对照表 奥的斯电梯故障解决方法...

    刚从事电梯维保行业 我们除了培训中系统的学习外 实践中总结出来的窍门和技巧同样重要 当我们所见的故障案例和维修的电梯比较多的时候 经验及自然来了 这就是我们经常说熟能生巧 下面是diantijob小编整理的关于奥的斯电梯常见的故障代码和故障
  • h5移动端,通过监听路由回退事件关闭弹窗

    最近在做一个商城项目 项目设计是在移动端浏览器上使用 目前先不内嵌在app内部 在做商品详情页的时候 也调研了其他的app交互 其中有一个交互是在商品详情页 点击当前商品包含的服务详情按钮 会弹窗 点击返回按钮或者手机自带的返回 会关闭弹窗
  • 前后端分离--用户注册功能的实现

    爱旅行 用户注册 Object Obj application getAttribute active itripUser getUserCode 不能 toString 可能obj的值为空 就会出现异常 String activeCode
  • matlab最小分类错误全局二值化算法

    转自 http download csdn net detail hupeng810 1511870 function imagBW kittlerMet imag KITTLERMET binarizes a gray scale ima
  • git clone 遇到问题:fatal: unable to access ‘https://github.comxxxxxxxxxxx‘: Failed to connect to xxxxxxx

    git clone 遇到问题 fatal unable to access https github comxxxxxxxxxxx Failed to connect to xxxxxxxxxxxxx
  • ContOS7镜像下载与安装

    contos7的安装 文章目录 contos7的安装 一 镜像下载 二 安装 一 镜像下载 官网下载链接 http isoredirect centos org centos 7 isos x86 64 阿里云镜像站点 http mirro
  • Vite跨域设置

    Vite跨域设置 步骤一 vite config ts配置 proxy 跨域代理 apis target http env VUE APP BASE API target http url port changeOrigin true re
  • 一起学nRF51xx 6 - uart

    前言 通用异步接收器 发送器提供快速 全双工 内置流量控制的异步串行通信 CTS RTS 在硬件方面支持高达1Mbps波特率 支持奇偶校验和第9位数据生成 用于每个UART接口线的GPIO可从芯片上的GPIO中任选 而且可独立配置 这使得芯
  • CentOS8基础篇3:使用vim编辑文档

    一 vim编辑器 vim 编辑器共有三种工作模式 分别是命令模式 输入模式和末行模式 例2 24 使用vim编辑器创建并编辑文件hello c 二 查看文件内容命令 1 more less 浏览文件全部内容 当文件内容过多时 可以用more
  • 2.2析取范式与合取范式

    2 2析取范式与合取范式 本节给出命题公式的两种规范表示方法 这种规范的表达式能表达真值表所能提供的一切信息 定义2 2命题变项及其否定统称作文宇 仅由有限个文字构成的析取式称作简单析取式仅由有限个文字构成的合取式称作简单合取式 P g p
  • [正能量系列]失业的程序员(三)

    注 本文原型为作者的好友们 全文不完全代表作者本人的意图 本系列前两章 失业的程序员 一 二 一 这段时间我去参加了一个管理培训班 说实话去之前真的很痛苦 我一向认为那些都是骗人的玩意儿 在qq上找我学姐吐槽 说现在的广告真烦 搞这么多培训
  • Qt注册自定义类型

    一 自定义类型注册必要性 如果要在Qt信号槽中使用自定义类型 需要注意使用qRegisterMetaType对自定义类型进行注册 当然在不跨线程时使用自定义类型signal slot来传递 可能不会出现什么问题 一旦涉及跨线程就很容易出错
  • SPSS(基础篇09)--拆分数据文件

    拆分数据文件 文章目录 拆分数据文件 前言 1 在原始文件中拆分 1 1 拆分文件 比较组 1 2 拆分文件 按组来组织输出 1 3 其它用法 2 直接存储为多层 拆分结果单独存为文件 前言 导语 拆分文件是一种很常见的操作 比如 一个数据
  • 关于loss.backward()函数反向传播时叶子节点被释放

    之前写代码的时候遇到的一个问题 一直没有解决 后来稀里糊涂的解决了 我也不知道原因 这里贴出来 希望大家遇到这个问题的时候能有些启发 图来自网上搜索 由于问题是很久以前的了 当时没有保存截图 抱歉了 这个问题的出现其实可以将 loss ba
  • spring-aop组件详解——TargetSource目标源

    TargetSource 目标源 是被代理的target 目标对象 实例的来源 TargetSource被用于获取当前MethodInvocation 方法调用 所需要的target 目标对象 这个target通过反射的方式被调用 如 me
  • [工业互联-19]:如何在QT中增加SOEM主站

    目录 第1章 基本步骤 第2章 详细步骤 2 1 QT安装 2 2 VS安装 2 3 Win10 Debuggers 2 4 QT配置 2 5 SOEM移植 lib库生成 2 文件移植 文件整理 第1章 基本步骤 要在QT中添加SOEM主站
  • jsp 实现在线人数统计

    首先写个类 import javax servlet import javax servlet http public class SessionCounter implements HttpSessionListener private
  • Xcode7.1环境下上架iOS App到AppStore 流程 (Part 三)

    前言部分 part三 部分主要讲解 Xcode关联绑定发布证书的配置 创建App信息 使用Application Loader上传 ipa文件到AppStore 一 Xcode配置发布证书信息 1 给应用绑定App ID并添加Team账号
  • 爬取某网站的内容、得不到html页面的内容

    Python爬取 1 爬取内容 对某网站内容与热度进行爬取 分析 我们所需的数据是热搜榜的1 10 第一个数据pass divs html xpath div class wbpro side card7 div position gt 1