python-爬虫学习(文字、图片、视频)
程序员文章站
2022-06-28 11:11:19
爬虫 文字爬取 爬虫 图片爬取 爬虫 视频爬取 ......
爬虫-文字爬取
import re import requests respone = requests.get('https://ishuo.cn/') ##获取网站url data = respone.text ##把字符串转化成文本 result_list = re.findall('<div class="content">(.*?)</div>',data) ##找到需要爬取的内容,需要爬取的内容用'(.*?)'来代替,其他格式不变。 ''' <div class="content">如果你得罪了老板,失去的只是一份工作; 如果你得罪了客户,失去的不过是一份订单;是的,世上只有一个人可以得罪:你给她脸色看,你冲她发牢骚, 你大声顶撞她,甚至当 着她的面摔碗,她都不会记恨你,原因很简单,因为她是你的母亲。</div> ''' for result in result_list: ##爬取这个网页所有标记的文本 print(result)
爬虫-图片爬取
import re import requests count = 0 for i in range(44): ##设置图片网页的范围,进行网页跳转。 url = f'http://www.xiaohuar.com/list-1-{i}.html' ##获取跳转网页的url路径 response = requests.get(url) ##获取网页url路径,并赋值给response data= response.text ##将response转化成text文本并赋值给data # print(data) result_list = re.findall('src="(.*?)"',data) ##从data文本中提取需要爬取的图片路径,用“(.*?)”来代替,并赋值给result_list(变成列表) for result in result_list: # type:str ##逐个提取图片url出来 if result.startswith('https'): ##刷选开头是”https“的图片url img_respone = requests.get(result) ##将开头是“https”的图片url提取出来,并赋值给img_response列表 # print(img_respone) img_name = result.split('/')[-1] ##对列表中图片url以“/”标识进行切分,并提取最后一段url,并赋值给img_name # print(img_name) img_data = img_respone.content ##将列表img_response转换成二进制格式 with open (img_name,'wb') as fw: ##打开img_name文件,并赋予写入权限(以字节格式写入) fw.write(img_data) ##将img_data的数据写入img_name文件 fw.flush() ##快速写入 count +=1 print(f'爬取了{count}张图片') ##可以显示提示提取了多少张图片
爬虫-视频爬取
import re import requests response = requests.get('https://www.ku6.com/index') ##获取网站url data = response.text ##将response转换成文本格式 count = 0 result_list = re.findall('<a class="video-image-warp" target="_blank" href="(.*?)">',data) ##获取视频地址 for result in result_list: #type:str ##将获取第一层视频地址全部提取出来 # print(result) if result.startswith('/detail/') or result.startswith('/video/'): ##判断result里面以“/detail/”和“/video/”开头的url路径 result = f'https://www.ku6.com{result}' ## 提取判断正确的url路径,并赋值给第二层url列表 result_response = requests.get(result) ##重新获取第二层视频url路径,并赋值给response1 data1 = result_response.text ##将response1格式转换成文本 #print(data1) video_url = re.findall('<source src="(.*?)" type="video/mp4">',data1) ##获取视频地址 # print(video_url) if not video_url: ##对视频格式进行判断 video_url = re.findall('flvurl: "(.*?)"',data1) ##如果视频不是这个url格式,则更换成另外一种格式 # print(video_url) video_response = requests.get(video_url[0]) ##获取视频url路径 video_data = video_response.content video_name = f"{video_url[0].split('/')[-1]}.mp4" with open (video_name,'wb') as fw: fw.write(video_data) fw.flush() count +=1 print(f'爬取了{count}个视频')
下一篇: LG退出中国市场:为何国产厂商能一枝独秀