python爬虫工程师--手把手教会你--07获取动态页面.py

动态页面的确认:

同一个页面有两个url;

或者有xhr;

最粗暴的方法就是无限加载页面。

补充一下:

如何快速在自带浏览器E找到网址,快速查询:

有时在访问了请求后,并不能获取想要的数据。很大的原因之一就是,当前的页面是动态的。目前网络的页面分为2大类:

  • 静态页面

    • 特征:访问有UI页面URL,可以直接获取数据
  • 动态页面(AJAX)

    • 特征:访问有UI页面URL,不能获取数据。需要抓取新的请求获取数据

有些网页内容使用AJAX加载,而AJAX一般返回的是JSON,直接对AJAX地址进行post或get,就返回JSON数据了。

直接用最下面的url访问咱们需要的数据即可。例如:

#https://sports.cctv.com/nba/z/hoopchinanba/index.shtml?s=mkhupu
from urllib.request import Request,urlopen


url ='https://api.bilibili.com/x/web-interface/wbi/index/top/feed/rcmd?web_location=1430650&y_num=3&fresh_type=4&feed_version=V_WATCHLATER_PIP_WINDOW3&fresh_idx_1h=5&fetch_row=16&fresh_idx=5&brush=5&homepage_ver=1&ps=12&last_y_num=4&screen=1185-212&seo_info=&last_showlist=av_1853133903,av_1652670674,av_1853167532,av_1703130426,av_1052978868,av_1802950478,ad_5614,av_n_1153089416,av_n_1552867981,av_n_1952603649%3Bav_1352812843,av_1103299382,av_1252675912,av_1352589417,av_1902353568,ad_5637,av_1802297731,av_1602675536,av_1352311029,av_n_1952620978,av_n_1402468978,av_n_1152933882%3Bav_n_1352888828,av_n_1802993293,av_n_1902364274,av_n_1302554582,ad_5637,av_n_1752365028,av_1752567465,av_1902929193,av_1752948491,av_n_1002464500,av_n_1701729541,av_n_1452430483%3Bav_1602375037,av_1453332481,av_1503199126,av_1353064100,ad_5637,av_1353395847,av_1152673294,av_1002820027,av_1702297552,av_n_1302474701,av_n_1252625695,av_n_1652210309%3Bav_n_1152474521,av_n_1602851132,av_n_1703158101,av_1852487817,ad_5637,av_1602565994,av_1802605723,av_1052594304,av_1203005484,av_n_1253231198,av_n_1953270920,av_n_1603037410&uniq_id=176428302650&w_rid=e29f599db7b0ece8ca6aa6e69ebe27a9&wts=1713839011'
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36'}
req = Request(url,headers = headers)
resp = urlopen(req)
print(resp.read().decode())


'''
静态
   访问地址栏里的数据就可以获取到想要的数据。 
动态
   访问地址栏里的数据就可以获取不到想要的数据。 
   解决方案:抓包
     打开浏览器的开发者工具-network-xhr,找到可以获取到数据的url访问即可
'''

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

要争就争第一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值