抓包到的HTML都是数字字母,B站个人空间数据爬取requests+Beautifulsoup得到的html和元网页不一致...

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

就以爬取B站老番茄视频数据为例子,代码如下:

import requests

from bs4 import BeautifulSoup

import lxml

def open_url(url):

headers ={

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'}

res = requests.get(url,headers = headers)

return res

def main():

url = "https://space.bilibili.com/546195/video"

soup = BeautifulSoup(open_url(url).text,'lxml')

print(soup.prettify())

if __name__ == "__main__":

main()复制代码上面代码只是用来检测爬取到的源码是否一致,因为发不了图片,我也不知道怎么描述,就是爬取到的内容和原网页审查元素不一致,该有的视频的相关资料都没有...

补上输出结果吧:

搜索 | 腾讯招聘

PS F:\All_about_study\VS_code\python> & C:/Users/asus/AppData/Local/Programs/Python/Python38-32/python.exe f:/All_about_study/VS_code/python/爬虫/Beautifulsoup_text.py

window.__BILI_CONFIG__={"show_bv":true}

var ua=window.navigator.userAgent,agents=["Android","iPhone","SymbianOS","Windows Phone","iPod"],pathname=/\d+/.exec(window.location.pathname),getCookie=function(e){return decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*"+encodeURIComponent(e).replace(/[\-\.\+\*]/g,"\\[        DISCUZ_CODE_1        ]amp;")+"\\s*\\=\\s*([^;]*).*$)|^.*[        DISCUZ_CODE_1        ]quot;),"$1"))||null},DedeUserID=getCookie("DedeUserID"),mid=pathname?+pathname[0]:null===DedeUserID?0:+DedeUserID;if(mid<1)window.location.href="https://passport.bilibili.com/login?gourl=https://space.bilibili.com";else{window._bili_space_mid=mid,window._bili_space_mymid=null===DedeUserID?0:+DedeUserID;for(var prefix=/^\/v/.test(pathname)?"/v":"",i=0;i

不动的ACG大图书馆的个人空间 - 哔哩哔哩 ( ゜- ゜)つロ 乾杯~ Bilibili

  这一行本来是每个视频相关资料的,结果被替换成了这个

window.spaceReport={},window.reportConfig={sample:1,scrollTracker:!0,msgObjects:"spaceReport"};var reportScript=document.createElement("script");reportScript.src="//s1.hdslb.com/bfs/seed/log/report/log-reporter.js",document.getElementsByTagName("body")[0].appendChild(reportScript),reportScript.οnerrοr=function(){console.warn("log-reporter.js加载失败,放弃上报");var r=function(){};window.reportObserver={sendPV:r,forceCommit:r}}

74784a264a9d9c29c9b2c3f94b568f01.gif

2020-4-1 10:38:42

具体我也不是很懂,因为从来没爬过视频。

- b站翻视频动态页的时候,明显是一个瀑布流式的页面,所以应该是你一次请求并没有请求到想要的信息。

- 至于视频播放页面,我的电脑上没有flashplayer,b站估计也是用的HTML5。

- 如果是我的话,我会用selenium发送请求,然后再用lxml解析。

- 至于楼上说的反爬虫情况,我认为不是的。设置常见的机器人验证,header,ip,cookie等,只会是你请求不到相关页面。

- 我知道的html加密和映射,看楼主请求到的html是没有的。

- 我觉得应该b站页面是js动态渲染出来的,遇到这种情况,我会使用selenium,因为我不会其他的。

- b站上有许多讲爬取js动态页面的或者js加密的视频,你可以看一下。

你可能感兴趣的:(抓包到的HTML都是数字字母)