Python---分页爬取今日头条标题
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×tamp=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×tamp=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---分页爬取今日头条标题相关推荐
- 利用Ajax爬取今日头条头像,街拍图片。关于崔庆才python爬虫爬取今日头条街拍内容遇到的问题的解决办法。
我也是初学爬虫,在看到崔庆才大佬的爬虫实战:爬取今日头条街拍美图时,发现有些内容过于陈旧运行程序时已经报错,网页的源代码早已不一样了.以下是我遇到的一些问题. 1.用开发者选项筛选Ajax文件时预览看 ...
- python编程100例头条-python 简单爬取今日头条热点新闻(一)
今日头条如今在自媒体领域算是比较强大的存在,今天就带大家利用python爬去今日头条的热点新闻,理论上是可以做到无限爬取的: 在浏览器中打开今日头条的链接,选中左侧的热点,在浏览器开发者模式netwo ...
- python爬虫爬取今日头条_python 简单爬取今日头条热点新闻(一)
今日头条如今在自媒体领域算是比较强大的存在,今天就带大家利用python爬去今日头条的热点新闻,理论上是可以做到无限爬取的: 在浏览器中打开今日头条的链接,选中左侧的热点,在浏览器开发者模式netwo ...
- python简易爬取今日头条的热榜
前言 提到python就离不开爬虫,把想要的资料文章新闻图片视频等等都获取到并保存,百度上随便找个网站就能练练但是爬取的东西都没啥意义,好玩的网站反爬机制小白破解不了流程也复杂,接口入参加密长时间调接 ...
- python爬虫爬取今日头条_爬取今日头条头条号文章数据
0,背景介绍 最近想爬取一些今日头条的文章浏览数据,分析哪些头条号做的好,那些做的不好. 今日头条 比如上图的阅读数,评论数以及文章标题,通过这些数据进行分析. 于是展开了艰难的爬虫探索之旅 第一目标 ...
- python爬虫爬取今日头条_Python爬虫实战入门五:获取JS动态内容—爬取今日头条...
之前我们爬取的网页,多是HTML静态生成的内容,直接从HTML源码中就能找到看到的数据和内容,然而并不是所有的网页都是这样的. 有一些网站的内容由前端的JS动态生成,由于呈现在网页上的内容是由JS生成 ...
- 今日头条python_GitHub - a57571735/headlines_today: 基于Python的爬取今日头条文章及视频...
分析所抓到的文章列表数据包:大致分为两类,一类是有视频的文章,一类则是没有视频的文章. 有视频的文章json内容里均有video_id这个key,如下图所示: 没有视频的文章:json文件内容均包含t ...
- python爬虫爬今日头条_GitHub - striver-ing/headlines_today: 基于Python的爬取今日头条文章及视频...
分析所抓到的文章列表数据包:大致分为两类,一类是有视频的文章,一类则是没有视频的文章. 有视频的文章json内容里均有video_id这个key,如下图所示: 没有视频的文章:json文件内容均包含t ...
- python爬虫-爬取今日头条(图集)
1.工具使用 python的request包和json包 fiddle抓包工具 2.请求分析 我们访问该页面,抓取请求,得到如下结果. 不难发现,在图片加载之前数据量最大的就是search_conte ...
最新文章
- Yii的action
- 迁移到其他机器_有赞大数据离线集群迁移实战
- WinPcap笔记(5):不用回调方法捕获数据包
- linux 7种网卡绑定模式,七种网卡绑定模式详解
- 【人脸识别】基于matlab HOG特征提取人脸识别【含Matlab源码 641期】
- XMPP即时通讯协议
- 音频硬件发展史,以及DSD是如何产生的 一起说一说音频
- 5号,7号电池充电时间计算方法
- python实用脚本(三)—— 通过有道智云API实现翻译
- Pyhton 兔子繁衍问题(后有递归求法)(设有一对新生的兔子从第4个月开始他们每个月月初都生一对新兔子, 新生的兔子从第4个月开始又每个月月初生一对兔子,求n个月后兔子的总对数)
- 达内2018前端设计相关教程视频
- 闰秒及其对计算机系统影响,闰秒原理及其对计算机系统影响
- 第四节 电路心法 基尔霍夫电压定律与电流定律
- python重新安装ssl_python3安装文件遇到ssl未安装问题
- GSK消费保健品推出首款碳中和牙刷;雀巢“可持续发展列车”驶入瑞士驻华大使馆 | 知消...
- 嵌入式计算机是专用计算机系统,嵌入式系统是一种专用的计算机系统.doc
- kestrel web服务器性能对比,netcore高性能Web服务器Kestrel分析(示例代码)
- 小米智能家居接入智能家居平台homeassistant的方法
- 新版TCGA表达矩阵1行代码提取2.0版
- USB摄像头方案及应用
热门文章
- 3D MAX2018 启动提示:无法加载自定义驱动程序 强制空驱动程序模式
- MySQL配置文件my.ini内容
- js中websocket基本使用及数据量过大或推送频率过快等基本问题
- js根据判断改变html字符串长度,js如何判断输入字符串长度
- 计算机应用中组装测试是什么意思,新组装的电脑用什么软件测验性能最好???
- vue中proxyTable配置方法
- [chia] 用于P盘的SSD硬盘寿命是多久
- 人工智能学习:载入MNIST数据集(1)
- 功能设计:给淘宝设计一个多人拼单购买的新功能
- 大神论坛 UEditor 富文本web编辑器最新漏洞版XML文件上传导致存储型XSS