python分页爬取今日头条标题

要爬取的内容(分页爬取今日头条中77事件的所有文章标题)

爬取结果展示(只展示出了部分)

#工具:pycharm(什么编译器都可以)、谷歌浏览器

进入正文:

一、首先对需求进行分析:

1.打开谷歌浏览器,搜索今日头条,如下输入77事件搜索

2.鼠标右键浏览器,点击检查,进入开发者模式对数据进行分析

3.之后点击Network,选择XHR,会发现什么都没有,鼠标点到浏览器上方的地址栏,按回车进行刷新

4.刷新之后会发现只有一条数据,鼠标点击

5.我们这里只用Headers和Respone,Headers是浏览器请求的一些数据,Respone是后台返回的数据

6.第一步分析Headers; Request URL 是浏览器请求的url地址(一会写python代码用这个url请求),方式为get请求

7.鼠标滚轮向下翻找到Request Headers,会看到有user-agent ,cookie,这个有什么用呢?所有网站都会有反爬,这里user-agent写python代码会用到,用来伪装成谷歌浏览器访问后台,而cookie有时候有时候不写也能爬取到(爬取不到就再下面的python代码中加上)

8.第二步分析Response,这是一个json数据,ctrl+a全选,ctrl+c复制所有数据到json在线解析上(百度json解析,第一个就是,网址:http://www.bejson.com/ )


9.选择json在线编辑器

10第一步:ctrl+a,先把原来的数据删除掉,ctrl+v把上面第8步复制的数据粘贴过来,第二步:点击格式化json数据,第三步:点击将json数据对象化

11.分析json数据,经分析,会发现title(标题)都在data里,我们需要将json串转化成字典,之后根据键取出data的数据

12.要进行分页爬取,这个offset参数代表的就是页码

13.鼠标滚轮向下滚,会发现offset以20递增,由此可见一共8页

二、进行python代码解析

1.导入json包,requests包;json直接就可以导入,requests需要下载;点击file—setting

选择Project:

右边点击加号

先搜索requests包,点击安装

2.python正式开始爬取,先导入这两个包

import requests
import json

3.写个主函数,手动输入起始页和终止页,并调用一个page函数

if __name__ == '__main__':startPage = int(input("请输入起始页码"))endPage = int(input("请输入终止页码"))page(startPage,endPage)

4.page函数接收起始页和终止页,for循环页码,url是上面分析的url,要将offset={}用来拼接页码(i就是页码,但是得*20,因为每增加一页是以offset=20递增的),调用loadPage(url),把url传过去,返回个布尔值(返回False代表读取完所有页了,终止当前函数)

def page(startPage, endPage):for i in range(startPage-1, endPage):print("当前第%s页" % (i+1))url="https://www.toutiao.com/api/search/content/?aid=24&app_name=web_search&offset={}&format=json&keyword=77%E4%BA%8B%E5%8F%98&autoload=true&count=20&en_qc=1&cur_tab=1&from=search_tab&pd=synthesis&timestamp=1562467283218".format(i*20)isPage=loadPage(url)if isPage==False:return

5.loadPage(url)接收url,设置个字典形式的请求头headers,用来伪装浏览器,

将上面分析到的user-agent和cookie复制到里面

def loadPage(url):headers = {"user-agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36","cookie":"tt_webid=6710713392061285902; WEATHER_CITY=%E5%8C%97%E4%BA%AC; tt_webid=6710713392061285902; UM_distinctid=16bc9db8a29f6-0417349b599406-516d3e71-13c680-16bc9db8a2d85; csrftoken=5eb2a0e00bcbb888f417ef261ee5269a; CNZZDATA1259612802=1761938442-1562456487-https%253A%252F%252Fwww.baidu.com%252F%7C1562461887; s_v_web_id=ddb620b1224506f21ba99de20d4169e3; __tasessionId=ned4t635k1562467258609"}#try异常,为什么出现异常?当所有也访问完,data为空,会出'NoneType' object is not iterable异常try:#将url和headers绑定发送请求,.text是拿到json串data = requests.get(url, headers=headers).text#将json传化成字典news = json.loads(data)#遍历字典的data数据for new in news["data"]:#如果有title,就输出if "title" in new.keys():print(new["title"])except Exception as e:print(e)#返回false就代表所有也已经读取完了return Falsereturn True

总结:篇幅过长,如果跟着我这个做不出来,或者不懂,留言问我,我有时间B站直播教学。

所有代码:

import requests
import jsondef page(startPage, endPage):for i in range(startPage-1, endPage):print("当前第%s页" % (i+1))url="https://www.toutiao.com/api/search/content/?aid=24&app_name=web_search&offset={}&format=json&keyword=77%E4%BA%8B%E5%8F%98&autoload=true&count=20&en_qc=1&cur_tab=1&from=search_tab&pd=synthesis&timestamp=1562467283218".format(i*20)isPage=loadPage(url)if isPage==False:returndef loadPage(url):headers = {"user-agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36","cookie":"tt_webid=6710713392061285902; WEATHER_CITY=%E5%8C%97%E4%BA%AC; tt_webid=6710713392061285902; UM_distinctid=16bc9db8a29f6-0417349b599406-516d3e71-13c680-16bc9db8a2d85; csrftoken=5eb2a0e00bcbb888f417ef261ee5269a; CNZZDATA1259612802=1761938442-1562456487-https%253A%252F%252Fwww.baidu.com%252F%7C1562461887; s_v_web_id=ddb620b1224506f21ba99de20d4169e3; __tasessionId=ned4t635k1562467258609"}try:data = requests.get(url, headers=headers).textnews = json.loads(data)for new in news["data"]:if "title" in new.keys():print(new["title"])except Exception as e:print(e)return Falsereturn Trueif __name__ == '__main__':startPage = int(input("请输入起始页码"))endPage = int(input("请输入终止页码"))page(startPage,endPage)

Python---分页爬取今日头条标题相关推荐

  1. 利用Ajax爬取今日头条头像,街拍图片。关于崔庆才python爬虫爬取今日头条街拍内容遇到的问题的解决办法。

    我也是初学爬虫,在看到崔庆才大佬的爬虫实战:爬取今日头条街拍美图时,发现有些内容过于陈旧运行程序时已经报错,网页的源代码早已不一样了.以下是我遇到的一些问题. 1.用开发者选项筛选Ajax文件时预览看 ...

  2. python编程100例头条-python 简单爬取今日头条热点新闻(一)

    今日头条如今在自媒体领域算是比较强大的存在,今天就带大家利用python爬去今日头条的热点新闻,理论上是可以做到无限爬取的: 在浏览器中打开今日头条的链接,选中左侧的热点,在浏览器开发者模式netwo ...

  3. python爬虫爬取今日头条_python 简单爬取今日头条热点新闻(一)

    今日头条如今在自媒体领域算是比较强大的存在,今天就带大家利用python爬去今日头条的热点新闻,理论上是可以做到无限爬取的: 在浏览器中打开今日头条的链接,选中左侧的热点,在浏览器开发者模式netwo ...

  4. python简易爬取今日头条的热榜

    前言 提到python就离不开爬虫,把想要的资料文章新闻图片视频等等都获取到并保存,百度上随便找个网站就能练练但是爬取的东西都没啥意义,好玩的网站反爬机制小白破解不了流程也复杂,接口入参加密长时间调接 ...

  5. python爬虫爬取今日头条_爬取今日头条头条号文章数据

    0,背景介绍 最近想爬取一些今日头条的文章浏览数据,分析哪些头条号做的好,那些做的不好. 今日头条 比如上图的阅读数,评论数以及文章标题,通过这些数据进行分析. 于是展开了艰难的爬虫探索之旅 第一目标 ...

  6. python爬虫爬取今日头条_Python爬虫实战入门五:获取JS动态内容—爬取今日头条...

    之前我们爬取的网页,多是HTML静态生成的内容,直接从HTML源码中就能找到看到的数据和内容,然而并不是所有的网页都是这样的. 有一些网站的内容由前端的JS动态生成,由于呈现在网页上的内容是由JS生成 ...

  7. 今日头条python_GitHub - a57571735/headlines_today: 基于Python的爬取今日头条文章及视频...

    分析所抓到的文章列表数据包:大致分为两类,一类是有视频的文章,一类则是没有视频的文章. 有视频的文章json内容里均有video_id这个key,如下图所示: 没有视频的文章:json文件内容均包含t ...

  8. python爬虫爬今日头条_GitHub - striver-ing/headlines_today: 基于Python的爬取今日头条文章及视频...

    分析所抓到的文章列表数据包:大致分为两类,一类是有视频的文章,一类则是没有视频的文章. 有视频的文章json内容里均有video_id这个key,如下图所示: 没有视频的文章:json文件内容均包含t ...

  9. python爬虫-爬取今日头条(图集)

    1.工具使用 python的request包和json包 fiddle抓包工具 2.请求分析 我们访问该页面,抓取请求,得到如下结果. 不难发现,在图片加载之前数据量最大的就是search_conte ...

最新文章

  1. Yii的action
  2. 迁移到其他机器_有赞大数据离线集群迁移实战
  3. WinPcap笔记(5):不用回调方法捕获数据包
  4. linux 7种网卡绑定模式,七种网卡绑定模式详解
  5. 【人脸识别】基于matlab HOG特征提取人脸识别【含Matlab源码 641期】
  6. XMPP即时通讯协议
  7. 音频硬件发展史,以及DSD是如何产生的 一起说一说音频
  8. 5号,7号电池充电时间计算方法
  9. python实用脚本(三)—— 通过有道智云API实现翻译
  10. Pyhton 兔子繁衍问题(后有递归求法)(设有一对新生的兔子从第4个月开始他们每个月月初都生一对新兔子, 新生的兔子从第4个月开始又每个月月初生一对兔子,求n个月后兔子的总对数)
  11. 达内2018前端设计相关教程视频
  12. 闰秒及其对计算机系统影响,闰秒原理及其对计算机系统影响
  13. 第四节 电路心法 基尔霍夫电压定律与电流定律
  14. python重新安装ssl_python3安装文件遇到ssl未安装问题
  15. GSK消费保健品推出首款碳中和牙刷;雀巢“可持续发展列车”驶入瑞士驻华大使馆 | 知消...
  16. 嵌入式计算机是专用计算机系统,嵌入式系统是一种专用的计算机系统.doc
  17. kestrel web服务器性能对比,netcore高性能Web服务器Kestrel分析(示例代码)
  18. 小米智能家居接入智能家居平台homeassistant的方法
  19. 新版TCGA表达矩阵1行代码提取2.0版
  20. USB摄像头方案及应用

热门文章

  1. 3D MAX2018 启动提示:无法加载自定义驱动程序 强制空驱动程序模式
  2. MySQL配置文件my.ini内容
  3. js中websocket基本使用及数据量过大或推送频率过快等基本问题
  4. js根据判断改变html字符串长度,js如何判断输入字符串长度
  5. 计算机应用中组装测试是什么意思,新组装的电脑用什么软件测验性能最好???
  6. vue中proxyTable配置方法
  7. [chia] 用于P盘的SSD硬盘寿命是多久
  8. 人工智能学习:载入MNIST数据集(1)
  9. 功能设计:给淘宝设计一个多人拼单购买的新功能
  10. 大神论坛 UEditor 富文本web编辑器最新漏洞版XML文件上传导致存储型XSS