python爬虫动态解析js_Python爬虫实战入门五:获取JS动态内容—爬取今日头条

F12打开网页调试工具:

0?wx_fmt=png

选择“网络”选项卡后,发现有很多响应,我们筛选一下,只看XHR响应。(XHR是Ajax中的概念,表示XMLHTTPrequest)然后我们发现少了很多链接,随便点开一个看看:我们选择city,预览中有一串json数据:

0?wx_fmt=png

我们再点开看看:

0?wx_fmt=png

原来全都是城市的列表,应该是加载地区新闻之用的。现在大概了解了怎么找JS请求的接口的吧?但是刚刚我们并没有发现想要的新闻,再找找看:有一个focus,我们点开看看:

0?wx_fmt=png

与首页的图片新闻呈现的数据是一样的,那么数据应该就在这里面了。

看看其他的链接:

0?wx_fmt=png

这应该是热搜关键词

0?wx_fmt=png

这个就是图片新闻下面的新闻了。

我们打开一个接口链接看看:http://www.toutiao.com/api/pc/focus/

0?wx_fmt=png

返回一串乱码,但从响应中查看的是正常的编码数据:

0?wx_fmt=png

有了对应的数据接口,我们就可以仿照之前的方法对数据接口进行请求和获取响应了2、请求和解析数据接口数据

先上完整代码:# coding:utf-8

import requests

import json

url = 'http://www.toutiao.com/api/pc/focus/'

wbdata = requests.get(url).text

data = json.loads(wbdata)

news = data['data']['pc_feed_focus']

for n in news:

title = n['title']

  img_url = n['image_url']    

url = n['media_url']

  print(url,title,img_url)

返回出来的结果如下:

0?wx_fmt=png

照例,稍微讲解一下代码:

代码分为四部分,

第一部分:引入相关的库# coding:utf-8

import requests

import json

第二部分:对数据接口进行http请求url = '

wbdata = requests.get(url).text

第三部分:对HTTP响应的数据JSON化,并索引到新闻数据的位置data = json.loads(wbdata)

news = data['data']['pc_feed_focus']

第四部分:对索引出来的JSON数据进行遍历和提取for n in news:

title = n['title']

  img_url = n['image_url']    

url = n['media_url']

  print(url,title,img_url)

如此,就完成了从JS网页中爬取数据。如有帮助,欢迎微信打赏0?wx_fmt=png微信公众号

州的先生

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507790.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

openjdk怎么执行java命令_Ubuntu 18.04 上使用 OpenJDK 安装并运行 Tomcat

在Linux上安装与卸载JDK和JRE,两种常用方法:一、通过 apt-get 命令在线进行安装与卸载(会自动配置好环境变量)二、通过下载并解压 .tar.gz 包进行手动安装与手动卸载(需要手动配置环境变量)注:javac命令是JDK中的,java命令是JRE中…

vscode卸载background插件_萌妹程序员鼓励师24小时在线陪你写代码,给我吹爆这个VSCode插件...

开源最前线(ID:OpenSourceTop) 猿妹综合整理项目地址:https://github.com/SaekiRaku/vscode-rainbow-fart最近,Github上有一个名为Rainbow Fart的VSCode 插件被玩坏了,有了这个插件,程序员鼓励师这个物种就要灭绝了。为…

java 获取td_[Java教程]jQuery获取table表中的td标签

[Java教程]jQuery获取table表中的td标签0 2017-07-28 00:00:08首先我来介绍一下我遇到的问题1.当有一个table表包含了标签,标签,大致可以认为是这样的:scene.ID scene.SceneName scene.QRUrl scene.LocalUrl if (!string.IsNullOrWhiteSpace(…

引用另一模板的宏_生信人值得拥有的编程模板Shell

前言“工欲善其事必先利其器”,生信工程师每天写代码、搭流程,而且要使用至少三门编程语言,没有个好集成开发环境(IDE,Integrated Development Environment)那怎么行?本人使用过vim, editplus, ultraedit, notepad, su…

avlib java_fatal error: libavutil/avconfig.h: No such file...

根据这位仁兄的记录,可以在android程序里调用ffmpeg的avcodec_version()函数;下载了最新版的ffmpeg源码(2.4.1),在cygwin里用NDK编译时可能会报错,报错如下;your_nameAP-CHN-LP140129 /cygdrive/c/Workspace_my/TestAp…

python 绘制分布直方图_统计学中常见的4种抽样分布及其分布曲线(Python绘制)...

现代统计学奠基人之一、英国统计学家费希尔(Fisher)曾把抽样分布、参书估计和假设检验看作统计推断的三大中心内容。统计学中,需要研究统计量的性质,并评价一个统计推断的优良性,而这些取决于其抽样分布的性质,所以,抽…

php 文件 不更新,php页面不刷新更新数据

php页面不刷新更新数据php页面不刷新更新数据实现起来很简单,我们可以使用前端的ajax技术。ajax作用:ajax技术的目的是让javascript发送http请求,与后台通信,获取数据和信息。实现前后端分离。ajax技术的原理是实例化xmlhttp对象&…

master节点部署pod_小伙!Kubernetes 部署如此简单,你看完全明白了

将项目迁移到k8s平台是怎样实现的?制作镜像控制器管理PodPod数据持久化暴露应用对外发布应用日志/监控1、制作镜像分为三步第一基础镜像,是基于哪个操作系统,比如Centos7或者其他的第二步中间件镜像,比如服务镜像,跑的像nginx服务…

c++从入门到精通_资料下载:从入门到精通,手把手教你学DSP

学习一个东西首先是了解它,比如DSP到底是什么?用在什么地方?怎么用?和单片机特点有那些相同与不同?开发需要注意什么?想了解清楚这些问题自然就清楚比较清楚的认识DSP。DSP,因为它是用来做数据处…

php mysql存中文,PHP+MySQL存储数据常见中文乱码问题小结

PHPMySQL存储数据常见中文乱码问题小结本文实例总结了PHPMySQL存储数据常见中文乱码问题。分享给大家供大家参考,具体如下:PHPMySQL出现中文乱码的常见原因:1. MYSQL数据库的编码是utf8,与PHP网页的编码格式不一致,就会造成MYSQL中的中文乱码。2. 使用MY…

dbf文件怎么创建_ThinkPHP6开发博客实战入门(三),创建admin后台入口

打开创建的应用根目录:E:phpstudy_proWWWp(注意,往后我所说的根目录就是此路径)简单说一下tp6的目录结构app应用目录主要存放控制器文件;config配置目录主要存放全局配置文件;public入口目录主要存放入口或者资源文件;…

没有返回值的方法mock怎么写_【方法】小学生怎么写读书笔记?

什么是读书笔记读书笔记,是指人们在阅读书籍或文章时,遇到值得记录的东西和自己的心得、体会,随时随地把它写下来的一种文体。古人有条著名的读书治学经验,叫做读书要做到:眼到、口到、心到、手到。这“手到”就是读书…

php e error,E_ERROR定义与用法汇总

前言最近由于项目需要,需要读取一个含有中文的txt文档,完了还要保存文件。文档之前是由base64编码,导致所有汉字读取显示乱码。项目组把base64废弃之后,先后出现两个错误:ascii codec cant encode characters in posit…

delphi中的函数传参如何传枚举参数_我是这样使用SpringBoot(API传参)

spring boot 传参spring boot 中的Controller或者RestController接收参数的方法是一样的。这章目标是对几种常用的传参都写个例子。创建package: com.biboheart.demos.api,这个包里放置API接口的RestController在com.biboheart.demos.api包中创建一个class: ParamCo…

ssh-copy-id命令不存在_Redis(三)- 常见命令

步骤1:5种数据类型步骤2:String 字符串步骤3:List 列表步骤4:Hash 字典,哈希表步骤5:Set 集合步骤6:Sorted Set 有序集合步骤7:官方命令手册步骤 1 : 5种数据类型Redis目前有5种数据类型,分别是:String(字符串)List&am…

matlab中极大似然估计法的应用程序,matlab用fmincon函数求极大似然估计

%l1_s分别是不同实验条件下的数据,下面的函数为极大既然函数的负值,先用fmincon求解,运行出错了。function [l1_s,l2_s,l3_s,l4_s,l5_s,l6_s] readandevaluate(filename)global l1_s l2_s l3_s l4_s l5_s l6_s;filename li_s.xlsx;l1_s xl…

python 字符串替换_学完Python打算出去找工作,怕找不到?看完这篇你可以提高通过率...

面试题目一:Python是如何进行类型转换的?1 函数 描述 2 int(x [,base ]) 将x转换为一个整数 3 long(x [,base ]) 将x转换为一个长整数 4 float(x ) 将x转换到一个浮点数 5 complex(real [,imag ]) 创建一个复数 6 str(x ) 将对象 x 转换为字符串 7 repr(…

matlab bmp hsi,matlab中RGB与HSI图像转化

姓名:边颖超学号:19021210974编程实现RGB与HSI彩色空间的转换,将一幅彩色图像分解为H、S、I三个分量,并显示这三个分量所对应的灰度图像。(1)利用imread函数读入灰度图片hurricane,并命名为Original Imagel&#xff1b…

vue.js php,vue.js去哪下载

vue.js可以去vue官网下载,其下载链接为“vuejs.org/v2/guide/installation.html”,然后用“本教程操作环境:Windows7系统、vue2.5.16版,该方法适用于所有品牌电脑。 vue.js下载及安装的三种方法 要下载安装vue首先得下载安装node.…

bootstrap table无法服务器分页_[精选] MySQL百万数据,你如何用分页来查询数据

文章来自:https://www.cnblogs.com/lxwphp/p/9237331.html商务合作: 请加微信 2230304070精选文章正文在开发过程中我们经常会使用分页,核心技术是使用limit进行数据的读取,在使用limit进行分页的测试过程中,得到以下数据&#xf…