最新要闻
- 全球观速讯丨《暗黑破坏神4》赛季通行证需氪金购买 暴雪重申:不会充钱就变强
- 20点狂欢:淘宝每满200减30、天猫/京东每满300减40
- 厂家称黄桃罐头没药效 网友调侃:黄桃罐头为何成东北人疯狂膜拜的神物
- 世界速读:首个进入太空的人类 宇航员加加林个人档案已解密:34岁死于空难
- 天天即时看!女生高铁录乐器考试被打断:工作人员知道情况后特意给换了地方
- 世界关注:将近30万人预约!有米粉要当小米13 Pro钉子户
- 每日观察!86寸4K巨屏!小米EA Pro 86电视今日开售 5999元
- 比Zen4还火 AMD游戏神U锐龙7 5800X3D史低2199元(首发3099)
- MIUI 14花宠摆件上线!米粉:小时候的QQ农场又回来了
- 每日快报!刘强东分享抗新冠经验:比感冒还轻微 京东将开通热线帮助员工
- 造车大战中360赢麻了?周鸿祎大赞自己投资的哪吒汽车
- 天天快看:整活!MIUI 14桌面大变:支持图标自定义调整
- 迷惑!大妈凌晨骑车撞上路边停放车辆:怒斥司机不开车灯
- 黄桃罐头遭疯抢 厂家实诚回应“没药效” 网友调侃:你不懂
- 环球观焦点:曝Redmi K60系列依然将采用塑料支架 为了性价比?
- 注意!鲍鱼被列入濒危物种红色名录:20种或灭绝
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
007爬虫之requests模块进阶
【资料图】
前面基本将爬虫的基础知识学习得差不多了,今天最后深入下requests模块,这个写完之后,一般的网站大家都可以去爬取了,后面会慢慢给大家分享一些烧脑的东西,今天还是先说说requests模块。思考问题1:如果一个网站需要账号密码登录后才能获得自己想要的东西,这个时候怎么进行爬取呢?答案分享:如果直接通过进去之后的网页的链接爬取,这个时候会报访问错误。其实我们想要做的就是让浏览器能够记录登录的过程,这里需要引入cookie这个概念,等我们在登录的时候,得到cookie,浏览器再带着cookie去请求下一个网页。抓取思路基本和前面的一样,就是增加了session会话,下面是获取17k小说书架的信息,代码如下:
# 浏览器如何记录登录的过程?# 登录 -> 得到cookie# 带着cookie去请求到书架url -> 书架上的内容## 必须得把上面的两个操作连起来# 我们可以使用session进行请求 -> session你可以认为是一连串的请求,在这个过程中的cookie不会丢失import requestsimport time# session会话session = requests.session()# 1.登录url = "https://passport.17k.com/ck/user/login"data = { "loginName": "XXXX", # 这里填写自己的账号 "password": "XXXXX" # 这里填写自己的密码}resp = session.post(url, data=data)# print(resp.text)# print(resp.cookies) # 看cookie# 2.拿书架上的内容# 直接通过刚才那个session获取,因为刚才那个session里面带有cookieurl_bookself = "https://user.17k.com/ck/author/shelf?page=1&appKey=2406394919"resp_bookself = session.get(url_bookself)datas = resp_bookself.json()["data"]for item in datas: # 书名 bookname = item["bookName"] # 作者 author = item["authorPenName"] # 书籍分类 bookCategory = item["bookCategory"]["name"] # 创作时间 createTimeValue = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(item["createTimeValue"]/1000)) # 更新时间 updateTimeValue = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(item["updateTimeValue"]/1000)) print(bookname, author, bookCategory, createTimeValue, updateTimeValue)
上面的代码一个是session,一个是time,这两个大家可以自行研究,还有一个是json,获得的json格式我这里单独给大家整理在下面,其实就是一个字典,然后从中提取出自己想要的内容:
获取的json格式,然后从json格式数据中提取想要的信息{"status": {"code": 0, "msg": "succ"}, "data": [{"bookId": 3222462, "bookName": "穿到三千小世界里当炮灰", "coverImg": "https://cdn.static.17k.com/book/189x272/62/24/3222462.jpg-189x272?v=1600827772000", "authorId": 75291810, "authorPenName": "时初四", "introduction": "世上总有那么一些人,总是被天道偏爱,万中无一,金手指满满。", "bookClass": {"id": 3, "name": "女生"}, "bookChannel": {"id": 18, "name": "幻想言情"}, "bookCategory": {"id": 172, "name": "时空快穿"}, "authLevel": {"id": 4, "name": "VIP作品"}, "progress": 0, "lastUpdateChapter": {"id": 42291581, "name": "第333章 大结局:丧尸能吃吗", "createTime": 1612285279000, "updateTime": 1612287639000, "isVIP": {"id": 1, "name": "是"}, "publishTime": 1612285409000}, "status": {"id": 4, "name": "正常"}, "bookStatus": {"id": 3, "name": "完本"}, "isVIP": {"id": 1, "name": "是"}, "bookmarkChapterId": 42291581, "bookmarkChapterName": "第333章 大结局:丧尸能吃吗", "bookmarkChapterVipFlag": 1, "topFlag": 0, "createTimeValue": 1635478048000, "updateTimeValue": 1645080007000, "topTimeValue": 0, "bookupdateTimeValue": 1667528548000, "recCode": "null1670660670511885", "type": 5}, {"bookId": 3328785, "bookName": "长生", "coverImg": "https://cdn.static.17k.com/book/189x272/85/87/3328785.jpg-189x272?v=1625066380000", "authorId": 16439338, "authorPenName": "风御九秋", "introduction": "国之将亡,必有乱世妖孽,国之将亡,必有济世真人......", "bookClass": {"id": 2, "name": "男生"}, "bookChannel": {"id": 24, "name": "仙侠武侠"}, "bookCategory": {"id": 9, "name": "古典仙侠"}, "authLevel": {"id": 4, "name": "VIP作品"}, "progress": 0, "lastUpdateChapter": {"id": 47451236, "name": "第五百四十九章 铁锅王八", "createTime": 1670601548000, "updateTime": 1670601849000, "isVIP": {"id": 1, "name": "是"}, "publishTime": 1670601549000}, "status": {"id": 4, "name": "正常"}, "bookStatus": {"id": 1, "name": "连载"}, "isVIP": {"id": 1, "name": "是"}, "bookmarkChapterId": 0, "bookmarkChapterName": "", "bookmarkChapterVipFlag": 0, "topFlag": 0, "createTimeValue": 1635478074000, "updateTimeValue": 1635478074000, "topTimeValue": 0, "bookupdateTimeValue": 1670601849000, "recCode": "null1670660670511885", "type": 5} ], "num": 20, "curPage": 1, "totalNum": 2, "totalPage": 1, "hasMore": 0, "time": 1670660670000}
上面代码运行的结果如下:
思考问题2:如果一个网站是从另一个网站跳转过来,并且单独访问这个网站的时候访问失败,它需要你告知从指定的网站跳转过来才有用,这种又该如何爬取?答案分享:这个叫做防盗链机制。需要知道你是从哪个网站跳转过来的,接下来看一个例子,下载梨视频里面的视频文件。如果直接从https://pearvideo.com/videoStatus.jsp?contId=1530514&mrd=0.919094593210594进行抓取会提示报错,需要在访问头部加上上一跳的网址信息,"Referer": f"https://pearvideo.com/video_{contId}"代码如下:
# 1.拿到contID# 2.拿到videoStatus返回的json -> srcURL# 3.srcURl里面的内容进行修整# 4.拿到真实的url下载视频import requests# 拉取视频的网址# url = "https://pearvideo.com/video_1465967"url = "https://pearvideo.com/video_1530514"contId = url.split("_")[1]# 准备代理信息proxy = { "http": "http://220.181.111.37:80", "http": "http://61.135.169.121:80", "http": "http://120.197.179.166:8080",}videoStatusUrl = f"https://pearvideo.com/videoStatus.jsp?contId={contId}&mrd=0.9190945932105943"headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36", # 防盗链:溯源,当前本次请求的上一级是谁 "Referer": f"https://pearvideo.com/video_{contId}"}resp = requests.get(videoStatusUrl, headers=headers)dic = resp.json()srcUrl = dic["videoInfo"]["videos"]["srcUrl"]systemTime = dic["systemTime"]srcUrl = srcUrl.replace(systemTime, f"cont-{contId}")# print(srcUrl)# 下载视频with open("c.mp4", mode="wb") as f: f.write(requests.get(srcUrl, proxies=proxy).content)print("视频下载完成!")
上面的代码运行后的结果是可以直接将视频下载到本地。上面代码还涉及到两个知识点值得大家关注,一个是下载视频和下载图片是一样的,都是用open函数,另外一个是里面用到了代理机制,大家可以研究下,这里给大家提供一个免费的代理IP的网址:https://ip.jiangxianli.com/?page=1到此爬虫的基本操作就说完了,大家可以根据上面的一些知识去爬一些简单的东西了,比如爬取歌曲、图片、文章、视频等。
-
全球今日讯!攻防世界-unseping(序列化,Bash shell)
这是一道序列化的题目,结合了LinuxBashshell知识一、基础知识点序列化序列化的概念:序列化(Serializat...
来源: 007爬虫之requests模块进阶
全球今日讯!攻防世界-unseping(序列化,Bash shell)
全球观速讯丨《暗黑破坏神4》赛季通行证需氪金购买 暴雪重申:不会充钱就变强
JavaScript:this指针
20点狂欢:淘宝每满200减30、天猫/京东每满300减40
厂家称黄桃罐头没药效 网友调侃:黄桃罐头为何成东北人疯狂膜拜的神物
全球看点:验证jenkins自动化部署
世界速读:首个进入太空的人类 宇航员加加林个人档案已解密:34岁死于空难
天天即时看!女生高铁录乐器考试被打断:工作人员知道情况后特意给换了地方
2021冬--简单描述时间复杂度
PDF转图片
Python实战案例,tkinter+random模块,实现课堂随机抽选提问并语音播报学生姓名
世界关注:将近30万人预约!有米粉要当小米13 Pro钉子户
每日观察!86寸4K巨屏!小米EA Pro 86电视今日开售 5999元
比Zen4还火 AMD游戏神U锐龙7 5800X3D史低2199元(首发3099)
MIUI 14花宠摆件上线!米粉:小时候的QQ农场又回来了
每日快报!刘强东分享抗新冠经验:比感冒还轻微 京东将开通热线帮助员工
Windows OpenGL ES 图像透明度
热门看点:我“采访”了 ChatGPT
观察:Blazor和Vue对比学习(进阶.路由导航二):布局(母版/嵌套)
世界简讯:WPF内嵌Http协议的Server端
造车大战中360赢麻了?周鸿祎大赞自己投资的哪吒汽车
天天快看:整活!MIUI 14桌面大变:支持图标自定义调整
当前速读:post表单数据格式完全解析multipart/form-data(C#实现)
队列之王: Disruptor 原理、架构、源码 一文穿透
每日视讯:Python如何导入自定义模块?
环球通讯!进制转换和计算机存储规则
SpringBoot整合Swagger2在线文档
迷惑!大妈凌晨骑车撞上路边停放车辆:怒斥司机不开车灯
黄桃罐头遭疯抢 厂家实诚回应“没药效” 网友调侃:你不懂
环球观焦点:曝Redmi K60系列依然将采用塑料支架 为了性价比?
注意!鲍鱼被列入濒危物种红色名录:20种或灭绝
10.3寸墨水屏!联想YOGA Paper墨水平板今日开售 3699元
天天热点评!环形队列、 条带环形队列 Striped-RingBuffer (史上最全)
梅西进4强 雷军点赞:阿根廷门将神了 太给力
全球微速讯:苹果要大赚!消息称iPhone 15又涨价 高端万元起:华为Mate60等跟涨吗
天天快资讯:深度学习基础课:最大池化层的前向传播推导
阿根廷点球大战淘汰荷兰:梅西点射破门 追平巴蒂纪录网友纷祝贺
国际领先!中国天眼获得银河系气体高清图像:揭露恒星诞生到消亡
世界热讯:巴西点球大战3-5克罗地亚!无缘四强 内马尔赛后痛哭
今日播报!Python装饰器与迭代器的学习教程
全球快资讯:你必须记住的30个CSS选择器?
最轻折叠屏OPPO Find N2来了!朱海舟:上手后你会WOW一下
当前热点-负债585.68亿、工资发不出:国美获黄光裕公司贷款1.5亿港元
天天快讯:NVIDIA力推的光追版《传送门》游戏被指代码糟糕:AMD显卡坑了
零百加速3.8秒马力暴躁 蔚来全系车型试驾会郑州站开启
世界短讯!MAUI新生5.2-样式外观:控件状态样式VisualState
python实现简单的商品数据管理系统
全球动态:asp.net core 基于Cookies的认证,自定义认证方案
全球新消息丨nginx中的正则表达式,location路径匹配规则和优先级
当前观点:后矿难时代 显卡价格仍居高不下
环球通讯!Java校验自定义枚举值
全球观天下!第一百一十一篇:基本引用类型Date
天天快消息!布洛芬不用抢 中国产能全球第一:一家公司就够33亿人用
天天短讯!BLOG-3总结
世界即时:突发!特斯拉中国工厂将停产Model Y
世界速看:一箱油能跑1200公里!比亚迪护卫舰07上市 20.28万起
当前通讯!雷军再谈小米13徕卡影像:非常自豪 你一定会被震撼到
【天天时快讯】我 一个程序员 靠玩ChatGPT年薪210万
世界看点:DX9性能大涨80% Intel驱动打鸡血原因找到了:做法很聪明
关注:南京一外卖小哥逆行撞劳斯莱斯 网友:几十年外卖白送了
今日快看!全球首架C919正式交付 中国搞这款大飞机有多不容易?
AI画作拍出110万高价创纪录!实测百度AI作画 效果惊艳
主人吃螺蛳粉:猫咪被臭到自闭
世界观速讯丨19岁少女无法走路 竟是因为它?国家早已明令禁止!
rsync远程同步
世界观焦点:AMD RX 7900 XTX渲染跑分性能曝光:感觉和RTX 4080两个时代
【热闻】国内电影票房已达285亿 《阿凡达2》成救命稻草:高价被指吃相难看
世界热推荐:为什么日本人更健康长寿?这12个“秘诀”值得借鉴
小米13 Pro长焦表现一绝:10cm至无穷远均可合焦
【报资讯】网传辽宁一有轨电车碾压电动自行车 官方回应:系剐蹭、人无碍
netmiko+textfsm自动统计交换机端口模块型号数量与闲置模块
【全球独家】【网关开发】4.Openresty 使用events插件进行事件通知
世界新消息丨蒟蒻颤抖:AI打信奥赛,三分之二赛题一遍过
【求助帖】从技术转为项目经理后,如何快速进入角色?
angr_ctf——从0学习angr(四):库操作和溢出漏洞利用
【世界速看料】新一代广汽本田皓影官图发布:大嘴变方嘴、可选7座
《原神》获TGA“玩家之声”奖!官方发800原石:全体都有
世界新动态:一部车骑10年!绿源推出INNO9-lite电动自行车:新国标 80km续航
天天快消息!NVIDIA发布527.56显卡驱动程序:DLSS 3游戏性能更强了
天天最资讯丨站起来了!哈弗H6插电混动版11月销量首超4000:直逼问界M5
焦点速递!CSS绝对定位7大应用场景实战案例分享
教你用CSS实现表单部件
环球热议:物联网平台在AIoT领域8大场景应用
东航官宣全球第一架C919商业首飞时间!这7大城市有福了
打爆丰田、本田混动SUV 比亚迪护卫舰07上市:20.28万起
天天微资讯!换代!AMD锐龙9 7950X3D来了:游戏性能比酷睿i9-13900K高出33%
【速看料】全国5G网络接入速率出炉:北京、上海都没抢到第一 移动最快
【世界新要闻】上线7年无敌手!《王者荣耀》11月吸金超13亿元:蝉联销冠
观点:MYSQL 1 DAY
世界微速讯:智能PDU,网络远程管理电源能耗提升配电效率
当前滚动:“云办公”如何用任务协同工具搞定项目和团队管理?
今日聚焦!SSM整合(spring-springmvc-mybatis)之CRUD
焦点日报:又拓新业务 比亚迪全新皮卡谍照曝光:DM混动没跑了
热点!不掉绒、无静电!史努比牛奶绒床品四件套大促:券后99元
天天快讯:一箭十四星 捷龙三号运载火箭首飞发射成功:海陆两用
焦点快播:QQ等级全球第一咋做到的?本人回应让网友羡慕:小时候家里开网吧
官方“挖墙脚”?网易《逆水寒》宣布推出“网易魔兽老兵服”
资讯:vscode使用chatGPT
全球滚动:我与 ChatGPT 讨论了面向对象语言 中,关于动态调用的问题