运用两次正则提取带换行符的网页源代码
import requests
import re
class Budejie():
def __init__(self):
self.headers = { "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)"
" Chrome/64.0.3282.186 Safari/537.36"}
self.spyder = requests.session()
def get_html(self,url):
"""获取网页源代码"""
response = self.spyder.get(url, headers=self.headers)
html = response.text
self.html = html
def get_content(self,url):
response = self.spyder.get(url, headers=self.headers)
html = response.content
return html
def get_mp4(self):
"""下载MP4视频"""
reg = re.compile(r'(<div class="j-r-list-c">.*?</div>.*?</div>)',re.S)
content = re.findall(reg, self.html)
reg = r'data-mp4="(.*?)"'
movie_address = re.findall(reg, str(content))
reg = r'data-title="(.*?)"'
movie_name = re.findall(reg, str(content))
length = len(movie_name)
for i in range(0,length):
self.down_load_mp4(movie_address[i], movie_name[i])
print("第"+str(i)+"个视频已下载成功")
def down_load_mp4(self, url, path):
path = ''.join(path.split())
path = "C:\\Users\\wwxy\\Desktop\\百思不得姐\\{}.mp4".format(path)
with open(path,"wb") as f:
content = self.get_content(url)
f.write(content)
if __name__ == '__main__':
url = "http://www.budejie.com/video/"
spyder = Budejie()
spyder.get_html(url)
spyder.get_mp4()