今日头条的用户页数据爬取跟频道页的数据爬取大部分很类似,但稍微有一点不一样,就是用户主页的接口signature有点不一样,需要将当前爬取的用户id和分页时间戳一起作为入参传递进去才能获取到真正的signature,除了这一点差异外其他的都是一样的思路,上代码:

def fetch_user_articles(self, user, browser):

honey = json.loads(self.get_js())

signature = honey['_signature']

max_behot_time = "0"

_as = honey['as']

cp = honey['cp']

if self.user_page > 0:

signature = browser.execute_script("return window.TAC.sign(" + user.user_id+max_behot_time + ")")

headers = {

'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',

'Connection': 'keep-alive',

'authority': 'www.toutiao.com',

'referer': user.media_url,

'method': 'GET',

'path': "/c/user/article/?page_type=1&user_id={}&max_behot_time={}&count=20&as={}&cp={}&_signature={}".format(

user.user_id, max_behot_time, _as, cp, signature),

'scheme': 'https'

}

self.s.headers.update(headers)

req_url = "https://www.toutiao.com/c/user/article/?page_type=1&user_id={}&max_behot_time={}&count=20&as={}&cp={}&_signature={}".format(

user.user_id, max_behot_time, _as, cp, signature)

req = self.s.get(req_url, proxies=get_proxy_ip())

# 通过随机数控制请求速度

time.sleep(random.random() * 2 + 2)

data = json.loads(req.text)

max_behot_time = str(data['next'][max_behot_time])

if data['has_more']:

self.user_page = self.user_page + 1

self.parse_user_artcle(data['data'], toutiaoitem.user_id, toutiaoitem.media_url)

#在休眠2s

time.sleep(2)

self.fetch_user_articles(user, browser)

else:

self.parse_user_artcle(data['data'], toutiaoitem.user_id, toutiaoitem.media_url)

toutiaodb.save(self.user_artcile_list)

def parse_user_artcle(self, items, user_id, url):

for item in items:

toutiaoitem = toutiaoitem()

toutiaoitem.user_id = user_id

toutiaoitem.source = item['source']

toutiaoitem.title = item['title']

toutiaoitem.source_url = 'https:' + item['display_url']

toutiaoitem.media_url = url

toutiaoitem.item_id = item['item_id']

toutiaoitem.abstract = item['abstract']

toutiaoitem.comments_count = item['comments_count']

toutiaoitem.behot_time = item['behot_time']

toutiaoitem.image_url = item['image_url']

toutiaoitem.image_list = item['image_list']

toutiaoitem.tag = item['tag']

toutiaoitem.chinese_tag = item['chinese_tag']

toutiaoitem.read_count = item['go_detail_count']

toutiaoitem.article_genre = item['article_genre']

self.user_artcile_list.append(toutiaoitem)

PHP头条爬虫,今日头条爬虫分析-爬取用户发的所有内容相关推荐

  1. python爬取快手粉丝榜_[Python] 【原创开源】快手爬虫,根据id批量爬取用户的所有图集和视频...

    分享 写在前面代码功能如题,根据快手用户的id来爬取用户所有公开作品,包括图集和视频. 原理:其实就是利用基于chromium内核的浏览器自带的devtools对所有请求进行排查找出包含作品链接的请求 ...

  2. python批量爬取图片_【原创开源】快手爬虫,根据id批量爬取用户的所有图集和视频...

    更新日志 所有版本更新日志会记录在这里 v0.4.0(2020-03-23) 修复id转eid的一些bug 从该版本开始,爬取视频均为无水印 v0.3.0(2020-03-10) 修复一些因为用户昵称 ...

  3. 快手视频批量采集 php,【原创开源】快手爬虫,根据eid批量爬取用户的所有图集和视频【已失效】...

    [Python] 纯文本查看 复制代码# -*-coding:utf-8 -*- import requests import time import os import json import th ...

  4. 网络爬虫-今日头条_signature参数逆向(第一弹)

    失踪人口回归ing 今天要讲的是今日头条web版的_signature参数逆向 直接上链接 --> 今日头条 首先随便点开一个版本,这里点的是娱乐,抓包看看结果. 可以很清晰地看到首页html源 ...

  5. Scrapy豆瓣爬虫 爬取用户以及用户关注关系

    文章目录 明确任务 1.新建mysql数据库以及数据表 1.1 创建数据库 1.2 创建用户信息表users 1.3 创建用户关注表user_follows 笔记一: mysql中utf8与utf8m ...

  6. python 今日头条 微头条_今日头条微头条范文-头条号的微头条你们都发些什么,该如何写?...

    头条号的微头条你们都发些什么,该如何写? 心灵相约头条号.呼唤着,努力着,拼搏着,它属于努力地人们,是传播正能量的家园.今天起要根扎头条号,写出优秀地原创作品.头条号的朋友们努力吧!用心血和汗水浇灌头 ...

  7. 土木工程转专业,上岸趣头条、今日头条后端开发,学习历程分享

    学习群小伙伴的学习面试经历,在去年刚转专业开始学习的时候给到他路线和学习过程中的帮助,所以他在学习过程中基本没走弯路,执行力也很强.里面提到的很多学习上的点也是我在文章中一直反复强调的,其他同学可以借 ...

  8. Python高级特性与网络爬虫(一):使用Ajax请求爬取用户微博内容和python多进程爬取用户图片

    最近阅读了崔庆才写的<Python3网络爬虫开发实战>,系统地学习一下利用Python写网络爬虫.由于这本书出版时间是2018年,很多书中案例涉及的网站已经改版,基本上每个案例都需要自己再 ...

  9. 今日头条和今日头条极速版究竟有什么区别

    首先,今日头条和今日头条极速版都是字节跳动公司旗下的产品.两款产品都可以看视频.看新闻.最大的区别就在于:出发点不同,针对人群不同. 一.今日头条APP 今日头条APP(以下简称头条),它的主要出发点 ...

最新文章

  1. c语言编程题餐饮服务打分,求详细分析C语言题餐饮服务质量调查打分题和答案..._质量员考试_帮考网...
  2. 关于短文本匹配的深度学习模型
  3. 程序员能力矩阵 你属于哪一层?
  4. 6月份不良与垃圾信息举报:垃圾邮件占40.4%
  5. exchange离线整理数据库
  6. 一个优秀的程序员应该如何提高工作效率?
  7. 大厂面试算法系列-如何实现链表的逆序(二)-递归法
  8. Eclipse中执行Tomcat源代码
  9. GitHub 热榜第一:最全中华古诗词数据库,收录30多万诗词
  10. 黑客社会工程学攻击特别危险,你知道多少?
  11. 酷狗歌曲缓存kgtemp转mp3工具
  12. RS485接收数据后发送乱码
  13. 天池大数据竞赛 阿里流行音乐艺人热度预测
  14. Win7 SP1 安装 .NET Framework 4.6.2,提示“时间戳签名和或证书无法验证或已损坏”
  15. 周杰伦新专辑预售热点传播渠道分析
  16. 软件测试周刊(第63期):凡是持久的,必是温和的与可持续的。
  17. couldn't create PTY
  18. 仿iphone顶部状态栏_无需第三方APP,苹果iPhone手机屏幕录制的方法
  19. 5G将又是一个失败的存在
  20. 2016.06工作日志

热门文章

  1. 《金蝶ERP-K/3完全使用详解》——6.2 产品预测单
  2. C IN ARM64 汇编基础-变量与表达式-基于The C Programming Language - Second Edition
  3. 信源编码技术作业1:使用Audacity绘制并分析清音、浊音、爆破音的频谱图
  4. 基于JAVA+SpringMVC+Mybatis+MYSQL的快递代收系统
  5. Snipaste截图时下拉菜单消失解决方法
  6. 考研调剂 计算机科学 软件,四川大学计算机学院(软件学院)2020非全日制考研调剂信息...
  7. Google卫星地图的URL计算
  8. 计算机因特尔网络论文,[心得]英特尔
  9. 游戏数值策划入门介绍
  10. 电脑开机自动联服务器,如何让Mac开机自动连接到NAS或网上邻居上的电脑