声明本篇文章仅供学习请合理使用爬虫尊重他人权益。目录一.目标1.举例二.爬取“2025必看热片”所在页面的html1.编写基础代码2.修改代码三.编写正则表达式获取每个影片的页面请求路径1.写代码2.查看运行结果四.爬取每一个影片的页面内容1.写代码2.查看运行结果​编辑五.总结一.目标爬取“2025必看热片”中涉及到的所有影片的下载地址。1.举例我们要用爬虫一直重复上面的步骤从而爬出所有“2025必看热片”中的所有影片的下载url二.爬取“2025必看热片”所在页面的html1.编写基础代码import requests,re #一.爬取”2025必看热片“所在的页面的html #1.要爬的url domain https://www.dytt8899.com/ #2.爬取该url的页面html resp requests.get(domain) #3.输出爬到的内容 print(resp.text)查看运行效果可见此时发生乱码了因此要看看人家这个网站用的编码查看过程如下可见此时该页面使用“gb2312”这种编码。2.修改代码查看代码运行效果三.编写正则表达式获取每个影片的页面请求路径1.写代码import requests,re #一.爬取”2025必看热片“所在的页面的html #1.要爬的url domain https://www.dytt8899.com/ #2.爬取该url的页面html resp requests.get(domain) resp.encoding gb2312#设置字符集 #3.输出爬到的内容 #print(resp.text) #二.编写正则表达式获取每个影片的页面请求 #1.预加载正则表达式:先拿到2025必看热片所在的那个大段 str1 obj re.compile(r2025必看热片.*?ul(?PsubStr.*?)/ul, re.S) #2.开始匹配 result obj.finditer(resp.text) #3.输出结果 for it in result: #保存这个大段 str1 it.group(subStr) #4.在写一个正则表达式匹配每一个热片的请求路径 list [] obj2 re.compile(ra href(?PsubUrl.*?), re.S) #5.对str1再进行一次匹配找到所有影片的请求路径 result2 obj2.finditer(str1) #6.输出结果 for it2 in result2: #将每个路径保存到list中 list.append(it2.group(subUrl)) #7.查看是否找到了所有影片的请求路径 print(list)2.查看运行结果如上图所示可见此时成功获取到了每部影片的请求地址是相对路径。那么我们下一步只用一个一个的把这些相对路径拼接上domain基础路径就能进一步访问每一个影片的详情页面。四.爬取每一个影片的页面内容1.写代码import requests,re #一.爬取”2025必看热片“所在的页面的html #1.要爬的url domain https://www.dytt8899.com/ #2.爬取该url的页面html resp requests.get(domain) resp.encoding gb2312#设置字符集 #3.输出爬到的内容 #print(resp.text) #二.编写正则表达式获取每个影片的页面请求 #1.预加载正则表达式:先拿到2025必看热片所在的那个大段 str1 obj re.compile(r2025必看热片.*?ul(?PsubStr.*?)/ul, re.S) #2.开始匹配 result obj.finditer(resp.text) #3.输出结果 for it in result: #保存这个大段 str1 it.group(subStr) #4.在写一个正则表达式匹配每一个热片的请求路径 list [] obj2 re.compile(ra href(?PsubUrl.*?), re.S) #5.对str1再进行一次匹配找到所有影片的请求路径 result2 obj2.finditer(str1) #6.输出结果 for it2 in result2: #将每个路径保存到list中 list.append(it2.group(subUrl)) #7.查看是否找到了所有影片的请求路径 #print(list) #三.爬取每一个影片的页面 #1.遍历list拼接上domain for x in list: #①拼接每个影片的完整url url domain.strip(/) x #②爬取每个影片页面的html resp2 requests.get(url) resp2.encoding gb2312 #③查看页面内容 #print(resp2.text) #④爬取每个影片页面的电影名下载地址 #预加载正则表达式 obj3 re.compile(r◎片 名 (?PmovieName.*?)br /.*?td style.*?href(?PdownloadUrl.*?), re.S) #开始匹配 resp3 obj3.search(resp2.text) #打印片名、下载地址 print(片名 resp3.group(movieName) \n 下载地址 resp3.group(downloadUrl) \n)2.查看运行结果如上图所示已经成功爬取出了每个影片的片名下载地址。下面我们用浏览器访问一下这个下载地址看看是否真的可以下载可见此时这个需求就完美完成了。五.总结这个案例中最重要的就是.*这种贪婪匹配所有字符在配合着re.S就能匹配到换行符然后进行定位最终就能匹配到我们想要的那一块。可以说是.*走天下了。以上就是本篇文章的全部内容喜欢的话可以留个免费的关注呦~~~