获取动态页面html
AJAX
AJAX(异步JavaScript和XML)是一种无需重新加载整个页面的情况下,与服务器交换数据,将增量信息局部更新在用户界面上的技术。AJAX具有异步性,AJAX请求不会阻塞用户界面,用户可以在请求处理的同时继续与页面交互,具有更强的交互性。AJAX能使网页从浏览器请求少量信息而不是整个页面。
动态网页
动态网页是指能够根据用户交互、数据变化或其它事件实时更新内容的网页。AJAX技术能实现网页的动态更新。
实现AJAX首先会创建XMLHttpRequest对象或更现代的fetch API,打开浏览器开发者工具选择网络面板,使用过滤器筛选通过fetch API发起的网络请求或响应内容为xml的请求。
页面往下拉,会发现网络面板上会逐渐出现类似news?pageNo=n&pageSize=50
这样的名称的请求,动态更新的数据(响应内容)是通过这些请求获取,第n页请求网址为https://www.hupu.com/home/v1/news?pageNo=n&pageSize=50
而不是浏览器地址栏显示的https://www.hupu.com
单击选中其中一个请求(以pageNo参数为7的请求为例),查看响应预览。浏览器的开发者工具的响应预览功能允许查看和分析通过网络请求获取到的响应内容,可以在预览中找到网页中对应的信息。也可以双击其中一个请求打开请求网址例如https://www.hupu.com/home/v1/news?pageNo=7&pageSize=50
,在浏览器菜单栏找到查找选项或使用快捷键CTRL+F打开搜索框搜索关键词。
urllib爬取动态页面源代码
from urllib.request import Request, urlopen
# 请求地址
url = 'https://www.hupu.com/home/v1/news?pageNo=7&pageSize=50'
# 封装请求头
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36'}
# 创建Request对象
req = Request(url, headers=headers)
# 发送请求,在浏览器开发者工具查看标头,查看到请求方法是GET
resp = urlopen(req)
# 读取响应内容
print(resp.read().decode())
运行结果
{"code":1,"internalCode":"PC000000","msg":"success","data":[{"img":"https://i11.hoopchina.com.cn/news-editor/2024-9-14/23-10-48/12681eaa-bfaa-4dec-94c6-84ab358f3623.png","title":"[流言板]老鹰官推分享合照:里萨谢和丹尼尔斯参与特雷-杨播客节目","content":"虎扑09月14日讯 老鹰官推分享球员合照:特雷-杨播客节目《From The Point Weekend》的特别嘉宾。状元郎扎卡里-里萨谢和戴森-丹尼尔斯参与队友特雷-杨播客节目。老鹰休赛期将德章泰-","tid":627997125,"topicName":"篮球资讯","topicUrl":"https://bbs.hupu.com/502","replies":30,"lights":12},{"img":"https://i3.hoopchina.com.cn/news-editor/2024-9-14/23-13-30/a38795c0-2a9c-4c85-b7cc-4f6eea74387b.png","title":"[流言板]贡献助攻+赢得3分,B费Ins:收获了很棒的客场胜利","content":"虎扑09月14日讯 刚刚结束的英超联赛,曼联做客3-0完胜南安普顿,B费在本场比赛贡献助攻。赛后,B费更新了Instagram:“收获了一个很棒的客场胜利。” 来源: 虎扑 标签:布鲁诺-费","tid":627997065,"topicName":"国际足球资讯","topicUrl":"https://bbs.hupu.com/482","replies":20,"lights":11},{"img":"https://i11.hoopchina.com.cn/editor/14546b7c2196a579e3a1c8a52cb4e32e.png","title":"男神大赛黑马Dank1ng挑战真人闯关节目!预测主播成绩抽精美豪礼","content":"虎扑第一届男神大赛正火热进行中,DANK1NG在预选赛中勇夺第一名,许多JRs都对这个突然冒出的名字多脸懵逼。Dank1ng曾是CSGO战队Tyloo职业选手,主打位置为狙击,赛场上的他有着非常优秀的","tid":627982940,"topicName":"步行街主干道","topicUrl":"https://bbs.hupu.com/1","replies":85,"lights":16},{"img":"https://i5.hoopchina.com.cn/news-editor/2024-9-14/22-31-56/84279ffc-9b5e-4e07-a813-4c07296c1685.jpeg","title":"[情报站]日网热议T1战胜KT:22DRX同学会取消;收视大成功;上单差距","content":"虎扑09月14日讯 2024LCK冒泡赛T1以3比2战胜KT以四号种子的身份晋级2024全球总决赛,日本网友对此展开热议,部分内容翻译如下:(未经允许禁止转载,搬运截图)-(2022)DRX同学会,取","tid":627996936,"topicName":"英雄联盟","topicUrl":"https://bbs.hupu.com/85","replies":82,"lights":44},{"img":"https://i1.hoopchina.com.cn/bbs-editor-web/1726326305856.jpg","title":"林秉圣社媒分享日常训练视频:你们眼里的我是什么样子的","content":"林秉圣社媒分享日常训练视频。配文:你们眼里的我是什么样子的。 来源: 抖音","tid":627996931,"topicName":"CBA专区","topicUrl":"https://bbs.hupu.com/173","replies":13,"lights":7},{"img":"https://i5.hoopchina.com.cn/news-editor/2024-9-14/22-59-08/1fb2bafe-c85b-4b2d-8a34-d7a92d3976ed.png","title":"[流言板]周六的微笑!76人官推分享训练照,乔治、马克西等球员出镜","content":"虎扑09月14日讯 76人官推分享球员训练照:一些周六的微笑,让你的一天充满阳光。保罗-乔治、泰雷斯-马克西、德拉蒙德、戈登等球员出镜。 来源: X","tid":627996923,"topicName":"篮球资讯","topicUrl":"https://bbs.hupu.com/502","replies":86,"lights":35},{"img":"https://i3.hoopchina.com.cn/bbs-editor-web/17263262314486.jpg","title":"先拔头筹!安徽文一男篮分享球队比赛精彩瞬间","content":"安徽文一男篮分享球队比赛精彩瞬间。配文:绝地反击,强势逆转,先拔头筹! 来源: 抖音","tid":627996919,"topicName":"CBA专区","topicUrl":"https://bbs.hupu.com/173","replies":18,"lights":8},{"img":"https://i3.hoopchina.com.cn/news-editor/2024-9-14/22-58-13/4ab7ae72-d1cc-47da-8233-b9302bc0fc1e.jpeg","title":"[流言板]魔人!哈兰德半场数据:2粒进球,2次射门全射正,1次解围","content":"虎扑09月14日讯 曼城和布伦特福德的比赛半场结束,目前曼城2-1领先,哈兰德的半场数据如下:出场时间:51分钟进球:2射门/射正:2/2丢失球权:3触球:11传球:5传球成功率:80%解围:1地面对","tid":627996908,"topicName":"国际足球资讯","topicUrl":"https://bbs.hupu.com/482","replies":40,"lights":12},{"img":"https://i1.hoopchina.com.cn/news-editor/2024-9-14/22-59-23/06ae0b8c-b640-4157-b7ae-c75d86fda90d.png","title":"[流言板]脚法精湛!埃德森送出英超生涯第4次助攻,距离纪录仅差一次","content":"虎扑09月14日讯 英超第四轮,曼城对阵小蜜蜂,上半场埃德森助攻哈兰德反超比分。据统计,这已经是埃德森英超生涯送出的第4次助攻,同时距离英超历史门将助攻次数只差一次。 来源: X 标签:埃德","tid":627996895,"topicName":"国际足球资讯","topicUrl":"https://bbs.hupu.com/482","replies":36,"lights":23},{"img":"https://i11.hoopchina.com.cn/editor/091e82b68ee70915dfe629c513a8023c.jpeg","title":"【中国行追踪】独家!库里将于9月15日上午参与虎扑《终于轮到我》栏目互动","content":"虎扑 9月14日 讯库里品牌中国行沈阳站圆满落下帷幕,库里及其团队将前往上海,开启本次中国行的最后一站。9月15日上午,史蒂芬·库里将参与虎扑知名栏目《终于轮到我》并与各位JRs在线互动。也欢迎所有","tid":627994209,"topicName":"篮球资讯","topicUrl":"https://bbs.hupu.com/502","replies":120,"lights":45},{"img":"https://i11.hoopchina.com.cn/news-editor/2024-9-14/22-51-56/b763108d-4ad3-473f-a770-212a53e0bc1f.jpeg","title":"[流言板]曼城vs布伦特福德半场数据:射门7-7,控球47%-53%,射正3-5","content":"虎扑09月14日讯 曼城和布伦特福德的比赛半场结束,目前曼城2-1领先,半场数据如下:射门:7——7射正:3——5控球率:47%——53%传球成功率:90%——87%犯规:3——1黄牌:1——0角球:","tid":627996860,"topicName":"国际足球资讯","topicUrl":"https://bbs.hupu.com/482","replies":11,"lights":5},{"img":"https://i10.hoopchina.com.cn/news-editor/2024-9-14/22-53-04/5222a6f6-79e6-4337-bfba-fb93a70b3849.png","title":"[流言板]致敬C罗!加纳乔社媒晒进球后坐广告牌庆祝照","content":"虎扑09月14日讯 英超第四轮,曼联客场3-0战胜南安普顿。加纳乔替补出场打入一球,并在庆祝时摆出了坐广告牌的姿势,致敬C罗。加纳乔社媒晒照,并配上了“\uD83E\uDD37\uD83C\uDFFC♂️”。 来源: Instagra","tid":627996850,"topicName":"国际足球资讯","topicUrl":"https://bbs.hupu.com/482","replies":78,"lights":49},{"img":"https://i2.hoopchina.com.cn/bbs-editor-web/17263256915152.jpg","title":"[中国行追踪]兄弟们一波了!库里和福克斯挑战中文配音王者荣耀语音包","content":"来源: 虎扑","tid":627996840,"topicName":"篮球资讯","topicUrl":"https://bbs.hupu.com/502","replies":26,"lights":11},{"img":"https://i3.hoopchina.com.cn/news-editor/2024-9-14/22-45-51/24c7d22a-5e5e-4ca8-be1b-9340038b1afe.jpeg","title":"[流言板]效率惊人!哈兰德英超72球超越坎通纳,且少踢86场","content":"虎扑09月14日讯 英超第四轮,曼城目前2-1领先布伦特福德,哈兰德梅开二度。据统计,哈兰德在英超赛场已经打进72粒进球,超越了名宿坎通纳(70球),并且哈兰德比坎通纳少踢86场,仅踢70场。 来","tid":627996758,"topicName":"国际足球资讯","topicUrl":"https://bbs.hupu.com/482","replies":73,"lights":19},{"img":"https://i1.hoopchina.com.cn/editor/27b8066c110e779611d019ffac494a07.png","title":"[韩网翻译]Faker:BLG和TES是非常强的队伍,希望能够再次与这些强队对决","content":"虎扑9月14日讯 2024LCK夏季赛选拔赛T1以3比2战胜KT晋级世界赛,赛后主教练kkOma和中单Faker选手接受韩媒群访,原视频翻译如下:(未经允许禁止转载,搬运截图)Q:对于胜利的感想?kk","tid":627996179,"topicName":"英雄联盟","topicUrl":"https://bbs.hupu.com/85","replies":336,"lights":50},{"img":"https://i3.hoopchina.com.cn/news-editor/2024-9-14/22-39-49/1ced3938-1504-4559-9a88-0cf27f670927.png","title":"[流言板]教育部:有39所高校新增足球运动专业,为所有专业中最多","content":"虎扑09月14日讯 教育部官方网站在今天发布《2024年度普通高等学校本科专业申报材料公示》。根据公示统计,2024年度拟新增专业535个,共涉及353所高校。其中,申报数量最多的专业依次为足球运动专","tid":627996706,"topicName":"中国足球","topicUrl":"https://bbs.hupu.com/220","replies":111,"lights":42},{"img":"https://i1.hoopchina.com.cn/news-editor/2024-9-14/22-40-05/f14830dd-ff14-40c9-9e24-6a30b938817f.png","title":"[流言板]记者:申花凌晨2点回到基地11点训练,浦项铁人今晚抵达上海","content":"虎扑09月14日讯 据记者甘慧报道,申花凌晨2点回到基地11点训练,浦项铁人今晚抵达上海。昨晚,在0:2落后的情况下,申花让二追四,最终4:3逆转战胜浙江队,第一次在浙江黄龙体育中心体育场笑到最后。不","tid":627996703,"topicName":"中国足球","topicUrl":"https://bbs.hupu.com/220","replies":41,"lights":23},{"img":"https://i3.hoopchina.com.cn/newsPost/24914-9xu49nundefined.png","title":"[流言板]亚洲之星邀请赛LCQ结果:LGD二队全败垫底,LCK次级包揽前四","content":"虎扑09月14日讯 亚洲之星邀请赛最后机会组的比赛今晚结束,LGD二队分别以1-2不敌CFO二队和T1二队排名垫底,而T1二队最终两战全胜排名第一,拿到最后一个四强名额。至此,本次亚洲之星邀请赛四强全","tid":627996693,"topicName":"英雄联盟","topicUrl":"https://bbs.hupu.com/85","replies":78,"lights":34}]}