爬虫爬取信息,抓包行为,超详细,附带源码

2023-11-07

爬虫爬取信息,无xpath,带源码



前言

爬虫利用requests 库爬取网址页面,包括文章标题,作者名,图片网址,评论数等,本打算利用xpath从页面爬取,但是新闻页面信息只能抓包,暂时写不出来用xpath的版本


操作步骤

1.在python中下载必要的库

本次需要的库只有两个,分别为requests库和json库,requests库用来发起请求,json库用来提取网页中的json文件
requests下载的时候使用pip即可
在这里插入图片描述
json库为原本就有的库,不需要手动安装

2.完善运行环境

本次使用的软件位pycharm,使用时,点击左上角file->settings
我的操作用的是anaconda环境,也可以直接导入库函数
在这里插入图片描述

3.在网页中寻找到资源

打开网页,右击空白处,点击检查,也可以直接按住F12,进入检查界面
会出现如图状况,没有资源的话刷新页面即可在这里插入图片描述
过滤Fetch/XHR,找到这种feed文件,feed文件有两类,我们选择channel_id这种,要爬取的内容就包括在里面在这里插入图片描述
可以点击预览查看包里面的信息是否是自己想要的信息,如果没有的话可以点击原本页面中的各种事件,让页面渲染出来,渲染出来后包会随之更新

4.写代码

代码如下(示例):

url为抓出的包中表头中的请求url,不同包的url内容不同,视情况爬取,点击预览可以看到包中所包含的信息。
headers为最下方的user-agent。
在这里插入图片描述

将其作为参数放入requests中,并将url和header结果通过json包转为为python字典模式方便信息提取
之后依靠字典知识依次循环过滤有用信息即可
过滤过程中包含字典列表,使用for循环即可

import requests
import json

url="https://www.toutiao.com/api/pc/list/feed?channel_id=3189398968&min_behot_time=0&offset=0&refresh_count=1&category=pc_profile_channel&client_extra_params=%7B%22short_video_item%22:%22filter%22%7D&aid=24&app_name=toutiao_web&_signature=_02B4Z6wo00901fjskmgAAIDA6LJ3UoQVPW34yJbAABo6heUKNQrPWvUwvkLq3zZRcJF9dkYCAbK3osYTnaqcMBQmuB9X87qYQ.-m5m31-BsDo1I1EqxpA2C9SA4Z0rjKs8KMZqpR8g1MtWMIf4"
header={
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.57"
}
resp=requests.get(url=url,headers=header)
res=json.loads(resp.text)

# 新闻标题
# for i in res["data"]:
#     print(i["Abstract"])
#

# # 图片链接
# for i in res["data"]:
#     for i in i["share_large_image"]['url_list']:
#         print(i["url"])

#文章地址
# for i in res["data"]:
#     print(i["display_url"])

#作者名字
# for i in res["data"]:
#     print(i["media_name"])

#评论数
# for i in res["data"]:
#     print(i["comment_count"])


for i in res["data"]:
    print("文章标题:"+i["Abstract"])
    print("作品地址:"+i["display_url"])
    print("作者名字:"+i["media_name"])
    print("评论数: "+str(i["comment_count"]))
    for i in i["share_large_image"]['url_list']:
        print("图片网址:"+i["url"])
    print("\n")

5.结果展示

在这里插入图片描述


总结

本来该文章想要使用的是xpath,但是显然xpath并没有用到,且本代码只是将爬取的信息显示出来,如需要保存,需要自己加上代码。
此外,url可能失效,如若代码上方附带代码无法运行,修改url即可,如果运行出来没有结果可能是抓包错误,重新选择要抓的包即可。

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

爬虫爬取信息,抓包行为,超详细,附带源码 的相关文章

随机推荐

  • 基于IDEA的Java学生管理系统

    1 创建学生类 package studentManager public class Student 定义成员变量 private String num 学号 private String name 姓名 private String a
  • 善用Linux内核中的各种数据结构和算法

    1 介绍 在数据结构和算法一文中经常就信手拈来一些基本数据结构和算法 如链表 队列 栈 二叉树等等 但是在C的标准库中并没有自带这些 C 通过STL 类程序库等等会带这些 那么在嵌入式开发里面怎么快速方便使用这些数据结构和算法咧 答案就是从
  • OpenGL 理解GL_TRIANGLE_STRIP等绘制三角形序列的三种方式

    OpenGL 理解GL TRIANGLE STRIP等绘制三角形序列的三种方式 2012 04 12 20 19 19389人阅读 评论 7 收藏 举报 GL TRIANGLE STRIP绘制三角形方式很多时候令人疑惑 在这里对其运作机理进
  • 【Java基础·Comparator多字段排序】

    Java基础 Comparator多字段排序 需求 对指定List按照 身份证号 姓名 入学时间倒序排列 版本1 package com biaogexf tools import lombok Data import java util
  • 游戏开发unity杂项知识系列:GameObject组件的SetActive、active、activeSelf与activeInHierarchy

    SetActive 控制物体的显示状态 SetActive true 物体设置为可显示状态 但是仍然依赖上层的显示状态 上层显示状态为可显示才能显示 SetActive false 物体设置为不可显示状态 active 在某个版本后已经弃用
  • Python标准库----random

    目录 一 简单认识random模块 二 本人对计算机中 随机 伪随机数 的理解和认识 三 random模块的常用方法 1 random seed 2 其余一些常用方法 四 参考文献 一 简单认识random模块 Python官网的解释 该模
  • SASS用法指南

    学过CSS的人都知道 它不是一种编程语言 你可以用它开发网页样式 但是没法用它编程 也就是说 CSS基本上是设计师的工具 不是程序员的工具 在程序员眼里 CSS是一件很麻烦的东西 它没有变量 也没有条件语句 只是一行行单纯的描述 写起来相当
  • 基于DC-DC的PWM控制器simulink仿真,包括abc转dq,PI控制器等

    目录 1 算法仿真效果 2 MATLAB源码 3 算法概述 1 引言 2 基本原理 2 1 脉宽调制 PWM
  • [C# 开发技巧系列] 使用C#操作幻灯片

    本专题概要 引言 实现思路 遥控幻灯片程序的实现 小结 一 引言 记得老师讲课的时候 经常会用PPT遥控翻页笔来遥控幻灯片来给我们讲课 当时觉得非常有趣 由于这段时间接触了VSTO相关的开发 了解到了Office的相关产品都公开了一些API
  • 三菱m80润滑参数_三菱第四轴的开通及设定

    M70与M80 均是标配第四轴功能的 不需要开通选项功能 a 开通第四轴功能 1002 4按下急停按钮 点击机台关机电源 关闭机床总电源 再开启机床总电源 再开机 b 定义第四轴名称 1013 A 第四轴名称为A c 格式化 使上述参数设定
  • Qt中的线程详解

    概述 在多核时代 CPU 的主频已经进入瓶 颈 另辟蹊径地提高程序运行效率就是使用线程 充分利用多核的优势 线程可以看做是 轻量级进程 线程即可以由操作系统管理 也可以由应用程序管 1 为什么要使用线程 我们都知道 进程线程的概念是非常重要
  • 如何彻底卸载anaconda3(win10)

    前言 win10 anaconda3 参考文档 anaconda官方删除文档 第一步 找到anaconda的安装文件夹 双击运行Uninstall文件 优点 方便快捷 缺点 无法将anaconda的配置文件删除 第二步 删除anaconda
  • obj、gltf、glb、fbx、b3dm模型项目汇总

    网址 https github com einstein20050430 Fast Quadric Mesh Simplification 项目 Fast Quadric Mesh Simplification master 功能 有损压缩
  • Python实现PPT转化为Word和OCR识别

    文章目录 一 Python安装和卸载库的方法 1 1 安装 1 2 卸载 二 工具 三 将PPT内容转化为Word 3 1 将PPT文本框里的文字转化为Word 3 1 1 需要的库 3 1 2 实现代码 3 1 3 具体解释 3 2将PP
  • 微服务实例构建成 docker 镜像实例

    作者 Linux猿 简介 CSDN博客专家 华为云享专家 Linux C C 云计算 物联网 面试 刷题 算法尽管咨询我 关注我 有问题私聊 欢迎小伙伴们点赞 收藏 留言 目录 一 实验环境 二 制作 jar 二 打包镜像 2 1 编写 D
  • maven deploy -e -U -B 等集成命令

    1 maven的install可以将项目本身编译并打包到本地仓库 这样其他项目引用本项目的jar包时不用去私服上下载jar包 直接从本地就可以拿到刚刚编译打包好的项目的jar包 很灵活 避免每次都需要重新往私服发布jar包的痛苦
  • 【图像处理】索引色 抖色 反锯齿

    图片内容请参考 http www softii com cms article 5560 html 索引色 一些比较老旧的电脑相关硬件和文件格式只能处理 8 位的像素 3 个色频在 8 位的显示设备上所能表现的色彩范围实在是太少了 因此 8
  • linux删除软件

    linux删除软件 删除软件但不删除配置文件 sudo apt get remove softname 同时删除软件包和配置文件 sudo apt get remove purge softname 删除无用依赖包 sudo apt get
  • conda配置深度学习环境常用命令

    在深度学习中 安装完CUDA和cuDNN之后 经常需要创建虚拟环境 将深度学习框架pytorch tensorflow或caffe等安装在虚拟环境中 当深度学习框架有问题的时候 直接把环境删除掉 重新安装 conda中命令有很多 但是在深度
  • 爬虫爬取信息,抓包行为,超详细,附带源码

    爬虫爬取信息 无xpath 带源码 文章目录 爬虫爬取信息 无xpath 带源码 前言 操作步骤 1 在python中下载必要的库 2 完善运行环境 3 在网页中寻找到资源 4 写代码 5 结果展示 总结 前言 爬虫利用requests 库