爬虫爬视频返回空集
import reimport bs4
import requests
url='https://haokan.baidu.com/v?vid=9340172854313612982&tab=recommend&sfrom=recommend'
head={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.82 Safari/537.36'}
resp=requests.get(url,headers=head)
print(resp.text)
t=re.findall(r'http://.*?.mp4',resp.text)
print(t)
请问一下,我想把这个网页的视频全部爬下来,正则表达式也正确,但是结果返回空集,如何解决呀 我发现我的resp.text爬出来的内容好像不全 本帖最后由 isdkz 于 2022-3-22 15:20 编辑
匹配 http:
t=re.findall(r'http:[^"]*?.mp4',resp.text)
匹配 https:
t=re.findall(r'https:[^"]*?.mp4',resp.text) isdkz 发表于 2022-3-22 15:18
匹配 http:
t=re.findall(r'http:[^"]*?.mp4',resp.text)
用t=re.findall(r'https:[^"]*?.mp4',resp.text)
['https:\\/\\/vd4.bdstatic.com\\/mda-nckhek3dbwp00478\\/cae_h264_delogo\\/1647866694456130876\\/mda-nckhek3dbwp00478.mp4', 'https:\\/\\/vd4.bdstatic.com\\/mda-nckhek3dbwp00478\\/cae_h264_delogo\\/1647866694456130876\\/mda-nckhek3dbwp00478.mp4', 'https:\\/\\/vd4.bdstatic.com\\/mda-nckhek3dbwp00478\\/hd\\/cae_h264_delogo\\/1647866692707372253\\/mda-nckhek3dbwp00478.mp4'】
会出现这个\\/ isdkz 发表于 2022-3-22 15:18
匹配 http:
t=re.findall(r'http:[^"]*?.mp4',resp.text)
为啥要用[^"]这个啊,表示除了”,其他字符串出现多次,非贪婪模式 ?是这意思吗 hunter魔术师 发表于 2022-3-22 15:55
为啥要用[^"]这个啊,表示除了”,其他字符串出现多次,非贪婪模式 ?是这意思吗
你用任意字符的话即使是非贪婪模式,也给你从 https: 一直匹配到 mp4 为止,
哪怕 https 跟 mp4 是在不同链接拿到的,
链接都会有一个双引号,所以我排除双引号可以避免 https 跟 mp4 不是取到的同一个链接 hunter魔术师 发表于 2022-3-22 15:54
用t=re.findall(r'https:[^"]*?.mp4',resp.text)
['https:\\/\\/vd4.bdstatic.com\\/mda-nckhek3dbwp004 ...
它的源代码中就是这样的,你可以自己匹配到后替换一下就好,
t=list(map(lambda x: x.replace('\\', ''), re.findall(r'http:[^"]*?.mp4',resp.text)))
isdkz 发表于 2022-3-22 16:02
它的源代码中就是这样的,你可以自己匹配到后替换一下就好,
t=list(map(lambda x: x.replace('\\', ' ...
大神 啥时候才能达到你这水平{:5_106:} hunter魔术师 发表于 2022-3-22 16:21
大神 啥时候才能达到你这水平
一步一步来,要不了多久的{:5_108:}
页:
[1]