我Python采集了新榜热门内容,原来这就是别人能成为自媒体大佬的秘密!

261 阅读5分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第N天,点击查看活动详情 大家好,我是辣条。 大家好,我是辣条,这是我爬虫系列的第25篇。

今天爬取的是一个自媒体人宝藏网站。

编辑区

编辑区包含了文章编辑的所有功能,重点是所有功能、素材都是免费的,像你写博客或者微信公众号都有用过这种类似的编辑器,但是免费的不多吧。

写作机器人

这个功能是很多自媒体小白的福利,想写作?但是自己没文字功底,这个神奇能帮助你描写文章,强烈推荐大家。

什么值得写

这个功能也非常强大,比如你想写科技领域的内容,这什么值得写功能就会推荐你最新该类型的热门文章。

这里只推荐三个功能,不写篇幅去介绍其他功能了,自己可以探索一下,直接进入今天的主题,爬取什么值得写推荐的热榜文章,学习一下从事自媒体别人是怎么写博客的。

采集目标 网址:新榜编辑

工具使用 开发工具:pycharm 开发环境:python3.7, Windows10 使用工具包:requests,execjs

项目思路解析 今天这个网页虽然比较的实用,各位大大在之后也可以在当前网页挑选合适的文章内容进行书写,但是问题是啥呢,网页数据是加密的,辣条真的是夜不能寐。

首先爬虫常规操作找到目标数据的接口位置,打开抓包工具查看数据的加载方式,打开抓包工具的一瞬间数据没了

当前网页应该是做了开发者工具检测,把抓包工具以单独页面打开

单独打开就没有什么问题了,找到文件接口数据确定请求的url地址

数据的接口 edit.newrank.cn/xdnphb/edit… 当前接口的请求方式为post,post请求就意味着需要传递数据

item能明显看出来数据数据加载的格式、日期、种类,数据的翻页就是通过日期来进行,nonece和xyz是加密数据,进行简单判断nonece、xyz应该都是md5加密 先找到nonece、xyz的加密位置,可以通过全局搜索也可以xhr断点调试的方法,只要能找到数据的加密位置就行,辣条这里就直接通过xhr断点找寻数据的发送位置

通过抓包工具右边的call stack找到后续的执行过程一个个点击查看找到发送数据的是在哪里生成的 传递的data数据为h 现在我们只需要找到h的生成位置就好了,h是由u得来的u是c函数生成的,nonece,zyz就是是在c函数生成

给位置数据打上断点,查看数据的加载规律,nonece为u方法生成的9个参数里的随机值

xyz加密的数据是o加上&nonece和nonece的值,o的参数是网址加上appkey在加上item的值

"/xdnphb/editor/articleMaterial/searchArticleMaterial?AppKey=joker&item={"type":"lakh","period":"1#2021-09-18","order":"2","extra":"全部","ranklist_id":"","weixin_id":"","start_time":"2021-09-18"}&nonce=6a65cad87"

xyz加密的代码有点多,这是何等的卧槽

直接补环境好了,不去硬扣js代码了复制js代码到本地,先把加密函数给拿过来,把整个t函数拿到本地,自己运行尝试一下

大功告成,数据的加密方式,加密规则都解决了,现在用Python整合,对目标网址发送请求,获取数据进行保存,各位大佬js源码可以自行扣取,只要t函数就可以了。

效果展示

简易源码分享 import execjs import requests import csv ​ nonce = execjs.compile(open('nonce.js').read()).call('u') date = input('请输入你需要的日期(2021-07-19):') xyz_code = '/xdnphb/editor/articleMaterial/searchArticleMaterial?AppKey=joker&item={"type":"lakh","period":"1#%s","order":"2","extra":"全部","ranklist_id":"","weixin_id":"","start_time":"2021-09-04"}&nonce=%s' % (date, nonce) print(xyz_code) xyz = execjs.compile(open('nonce.js').read()).call('t', xyz_code) ​ ​ print(xyz) url = "edit.newrank.cn/xdnphb/edit…" ​ data = { 'item': '{"type":"lakh","period":"1#%s","order":"2","extra":"全部","ranklist_id":"","weixin_id":"","start_time":"2021-09-04"}' % date, 'nonce': nonce, 'xyz': xyz } headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36', 'referer': 'edit.newrank.cn/?module=art…', } ​ response = requests.post(url, headers=headers, data=data).json() ​ datas = response['value']['datas']

print(response)

with open('新榜编辑器.csv', 'a', newline='', encoding='utf-8')as f: ​ for data in datas: # print(data) csv_data = csv.DictWriter(f, fieldnames=['summary', 'publicTime', 'originalFlag', 'author', 'orderNum', 'likeCount', 'clicksCount', 'downloadStatus', 'title', 'type', 'url']) csv_data.writerow(data)

行业资料:添加即可领取PPT模板、简历模板、行业经典书籍PDF。 面试题库:历年经典,热乎的大厂面试真题,持续更新中,添加获取。 学习资料:含Python、爬虫、数据分析、算法等学习视频和文档,添加获取 交流加群:大佬指点迷津,你的问题往往有人遇到过,技术互助交流。

领取

源码/资料/实战项目,备注:C站

微信名片

五包辣条! 关注

33

34

0

专栏目录 新闻采集系统python_Python 网络爬虫(新闻采集脚本) weixin_39946429的博客 50 '''百度百家新闻收集'''import re #网络连接模块import bs4 #DOM解析模块import pymysql #数据库连接模块import urllib.request #网络访问模块#配置参数maxcount = 1000 #数据数量home = 'baijia.baidu.com/' #起始位置#数据库连接参数db_config ={'host':... 新榜网站微信公众号文章半自动爬虫.rar 06-06 用的是jupyter notebook做编译器,Google浏览器,爬取新榜网的微信公众号的文章,主要分了两步,第一步先爬取公众号,第二步再爬取公众号的下阅读量靠前的文章. 因需求量不大,临时工作需求,暂时开发的是半自动的爬虫,希望对大家有帮助 记一次企业级爬虫系统升级改造(四):爬取微信公众号文章... 6-28 记一次企业级爬虫系统升级改造(二):基于AngleSharp实现的抓取服务 注:此处详情页的url也是会过时的,经过博主试验,我们只需要在url后面统一加上&devicetype=Windows-QQBrowser&version=61030004&pass_ticket=qMx7ntinAtmqhVn+C23mCuwc9ZRyUp... 网络爬虫(1)---爬取JS动态数据(上)_三翔馆主的