巨量新图数据目前只获取了前端显示的数据,up主的详细信息有个前端加密,发起的请求需要sign对应才能拿到数据,而且星图的数据拿取到200条的时候就会监测出来,目前没有解决,有人找到星图的sign可以探讨一下
1.首先想最简单的就是使用selenium模拟然后解析获取数据,但是网站直接监测到seleniun,百度过一些方法,如何跳过selenium监测,目前都没有实现,代码如下所示

from selenium.webdriver import Chrome
from selenium.webdriver import ChromeOptionsoption = ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])
option.add_experimental_option('useAutomationExtension', False)
# 设置不加载图片
# option.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2})
driver = Chrome(options=option)
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": """Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"""
})

最后还是老老实实的使用request模块,代码比较简单,直接手动复制cookie,跳过登录,麻烦的就是去找js请求,还是使用chrome的network来进行抓包,目前的请求地址如下所示

https://www.xingtu.cn/v/api/demand/author_list/?limit=20&need_detail=true&page=1&platform_source=1&order_by=score&disable_replace_keyword=false&marketing_target=1&task_category=1&tag=1&is_filter=true

更具筛选条件的不一样,url也会增加对应的查询条件,多拿几次请求就好了。如何根据自己塞选的条件构建请求地址即可,我这里有一个配置文件,目前适配的也只有如下几个大类
配置文件

营销目标:品牌传播
内容类型:美食
内容类别小类是第几个:2
粉丝数量区间:
报价区间:
所在地域:
预期cpm:1-30
预期播放量:

解析配置文件

# 解析配置文件
def par_init():with open('init.txt', 'r') as fp:for i in fp:init_list.append(i.split(':')[-1].replace('\n', ''))
# 链接分类的标签
init_dict = {'颜值达人':72, '美食':48, '搞笑剧情':97, '生活':36}
# 营销目标分类
mark_dict = {'品牌传播':1, '电商带货':2}
def creat_url():item_multiplication = 10000if len(init_list[3]) != 0:min_fans = int(init_list[3].split('-')[0])max_fans = int(init_list[3].split('-')[1])if len(init_list[4]) != 0:min_price = int(init_list[4].split('-')[0])max_price = int(init_list[4].split('-')[1])if len(init_list[6]) != 0:min_expected_cpm = int(init_list[6].split('-')[0])max_expected_cpm = int(init_list[6].split('-')[1])if len(init_list[7]) != 0:max_expected_play = int(init_list[7].split('-')[0])min_expected_play = int(init_list[7].split('-')[1])base_url = 'https://www.xingtu.cn/v/api/demand/author_list/?limit=20&need_detail=true&page=1&' \'platform_source=1&order_by=score&disable_replace_keyword=false'# 市场还是品牌mark_target_url = '&marketing_target={}&task_category=1'# 大类target_url = '&tag={}'# 小类two_target_url = '&tag_level_two={}'fans_url = '&fans_min={}&fans_max={}'price_url = '&price_max={}&price_min={}'cpm_url = '&expected_cpm__ge={max}&expected_cpm__le={min}'play_url = '&expected_play_num__le={}&expected_play_num__ge={}'url_end = '&is_filter=true'base_url = base_url + mark_target_url.format(mark_dict[init_list[0]])base_url = base_url + target_url.format(init_dict[init_list[1]])if len(init_list[2]) != 0:# print(init_dict[init_list[1]] + int(init_list[2]))base_url = base_url + two_target_url.format(init_dict[init_list[1]] + int(init_list[2]))if len(init_list[3]) != 0:base_url = base_url + fans_url.format(min_fans * item_multiplication, max_fans * item_multiplication)if len(init_list[4]) != 0:base_url = base_url + price_url.format(max_price , min_price)if len(init_list[6]) != 0:# print(max_expected_cpm,min_expected_cpm)base_url = base_url + cpm_url.format(max = min_expected_cpm, min=max_expected_cpm)if len(init_list[7]) != 0:base_url = base_url + play_url.format(max_expected_play*item_multiplication, min_expected_play*item_multiplication)base_url+=url_endreturn base_url

链接构建完成先去获取一次总的数据,cookie用自己的就好了

# 获取总共的条数
def get_total_info():url = creat_url()headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko)'' Chrome/92.0.4515.131 Safari/537.36'}cookies = {'cookies':''}resopnse = requests.get(url=url, headers=headers, cookies=cookies)item = json.loads(resopnse.text)total = int(item['data']['pagination']['total_count'])print(total)return total

然后遍历总数来修改url中的page信息,重新发起请求,修改page信息,发起请求,解析数据即可

 url = re.sub(r'page=\d', 'page='+ str(index), url)

后期解决了sign会同步上来,不过这个的sign有点麻烦

python 获取巨量星图数据相关推荐

  1. 使用Python获取股票单日成交数据

    本文主要介绍一个比较好的开源项目 Github:AKShare开源财经数据接口,该项目整合了各大财经网站的http接口:腾讯财经.新浪财经.网易财经.东财等....Github上介绍该项目是JetBr ...

  2. 可转债代码交流第二期:利用Python获取集思录数据(改)

    上期内容讲解了宁稳网数据获取的方法(用于初步计算未上市可转债价格),具体方法参考第一期:可转债代码交流第一期:利用Python获取宁稳网数据(包含基本的环境搭建与Python编辑器安装方法) 本人并非 ...

  3. python 获取东方财富网站的数据

    python 获取东方财富网站的数据 完整代码下载:https://github.com/tanjunchen/SpiderProject/tree/master/EastWealthWebsite ...

  4. 利用 Python 获取余额宝历史收益数据

    最近想做一个关于用一些指数基金与余额宝组成的简单 风险-无风险 投资组合的实验计算,发现通达信之类的行情软件并没有提供完整的余额宝收益信息,如通达信仅有年化收益率的数据,并没有万份收益的数据.因此考虑 ...

  5. Python获取丁香园疫情数据并解析json数据

    Python获取丁香园疫情数据并解析json数据 在利用pyecharts V1.x版本,使用Map对象进行制图时,对数据格式的要求比较高,如果数据格式不正确可能达不到我们预期的效果.在我的前一篇文章 ...

  6. Python获取高德POI兴趣点数据 以及高德的两个坑 示例抓取成都市餐饮服务大类

    POI数据,英文全称Point of Intersesting,中文的意思是兴趣点,指的是在地图上有意义的点:比如商店.酒吧.加油站.医院.车站等.POI数据能够赋能时空行为.城市规划.地理信息等研究 ...

  7. 赞!用Python获取A股行情数据的4种方法

    今天看到了某位同学关于<深入浅出Python量化交易实战>一书所写的的Python读书笔记,现在推送给大家,望一起探讨学习. 为鼓励大家学习,文末也会进行赠书活动,不容错过! 原文如下: ...

  8. python获取id标签对应数据_Python--Scrapy爬虫获取简书作者ID的全部文章列表数据

    最近Python大火,为了跟上时代,试着自学了下.Scrapy是一个高级的Python爬虫框架,它不仅包含了爬虫的特性,还可以方便的将爬虫数据保存到csv.json等文件中. 今天我们就试着用Scra ...

  9. Python 获取股票K线数据

    前言 玩过股票的几乎都知道,股票历史交易日的开盘价.收盘价.最高价.最低价等指标是选股的重要依据.虽然仅仅依靠它们无法在股市中盆满钵满,但是运用好它确实能在较大程度上提高我们的赚钱概率. 当前的金融数 ...

最新文章

  1. 显示Iframe指定位置
  2. java 7zip解压_Apache Commons Compress介绍-JAVA压缩解压7z文件
  3. 如何用matlab实现文字动态滚动,js 动态文字滚动的例子
  4. 计算机本科毕业设计:毕业设计、论文要点及我们面对毕业答辩应持有的态度
  5. canvas笔记-closePath函数的使用(含例子)
  6. 【产品对比】Word开发工具Aspose.Words和Spire.Doc性能和优劣对比一览
  7. AD原理图编译WARNING:Net XXX has no driving source
  8. jedis的源码理解-基础篇
  9. #WP7 GPS# 如何判断GPS设备可用或者用户是否开启了GPS
  10. 请求发送者与接收者解耦——命令模式(三)
  11. 用计算机弹极乐净土谱,原神琴谱极乐净土分享 曲谱怎么弹奏
  12. TSO、UFO、GSO、LRO、GRO和RSS介绍
  13. c语言开发谷歌浏览器插件,用Chrome学编程
  14. STM32F1 HAL库实战开发——【实验1 点亮LED实验】
  15. 自定义动画渲染器 Interceptor
  16. 小米progtx笔记本快捷键驱动安装
  17. 【数模】数据统计中的峰度与偏度
  18. php-hyperf 使用Saber报 HTTP -4 Unknown: Linux Code 11: Resource temporarily unavailable
  19. 触动精灵 python_触动精灵远程Log模块
  20. 根据sitemap一键推送给百度收录的python小脚本

热门文章

  1. Zotero文献管理
  2. 【电影评价】——可爱的电影适合可爱的你!!!一直更新中
  3. 一次应用访问数据库 IP 配成外网 IP 引发的血案
  4. npoi获取合并单元格_梦琪小生 C# 如何使用NPOI操作Excel以及读取合并单元格等
  5. 微信群机器人方案选型
  6. Android RxJava 基本用法
  7. Visual C++2010学习版详细安装教程
  8. Echarts地图实现闪动气泡,或者加载本地图片,改变颜色和symbolSize大小效果
  9. ps2022自学教程:使用Photoshop Mac软件创建动画和音频
  10. message from server: “Host ‘DESKTOP-FAJUM7V‘ is not allowed to connect to this MySQL server“