目录
一, 爬虫记得基本方法
二, 爬虫的操作实例
总结
一, 爬虫记得基本方法
1.1 爬虫概述
? 网络爬虫(又被称为网页蜘蛛, 网络机器人, 在 https://baike.baidu.com/item/FOAF 社区中间, 更经常的称为网页追逐者), 是一种按照一定的规则, 自动地抓取万维网信息的程序或者脚本. 另外一些不常使用的名字还有蚂蚁, 自动索引, 模拟程序或者蠕虫.
? Python 的爬虫相对其他语言来说还是很简单的, 是通过 requests 这个模块来进行操作的
因此在使用 python 进行信息爬取之前, 要确保你已经下载了 requests 这个模块, 如果没有下载通过: pip install requests 这个命令下载一下就可以使用了.
1.2 爬虫的使用方法
爬虫是通过程序来对我们想要获取信息进行爬取, 一般是采用 requests 请求获取到网页的信息, 然后再对网页的信息进行处理, 拿到有效的数据.
通过 requests 的 get 方法获取到网页的信息
然后再提取出网页源代码
通过正则表达式从源代码中获取需要的信息
对信息再处理
保存数据
二, 爬虫的操作实例
2.1 爬取文字
程序代码:
- # # 实例 爬取段子标题和内容
- import requests
- import re
- # 要爬取网页的链接
- url = 'https://ishuo.cn/'
- reponse = requests.get(url)
- data = reponse.content.decode('utf-8')
- # print(data)
- res_title = re.findall('</span><a href="/subject/.*?">(.*?)</a>',data)
- res_content = re.findall('<div class="content">(.*?)</div>',data)
- # 创建一个字典用于存储数据
- data_dict = {}
- for i in range(len(res_title)):
- data_dict[res_title[i]] = res_content[i]
- for i in data_dict.items():
- print(f'title:{i[0]:<50} {i[1]:<200}')
运行结果:
title: 因为她是你的母亲 如果你得罪了老板, 失去的只是一份工作; 如果你得罪了客户, 失去的不过是一份订单; 是的, 世上只有一个人可以得罪: 你给她脸色看, 你冲她发牢骚, 你大声顶撞她, 甚至当 着她的面摔碗, 她都不会记恨你, 原因很简单, 因为她是你的母亲.
title: 这个笑话好内涵, 你懂了没? 有位非常漂亮的女同事, 有天起晚了没有时间化妆便急忙冲到公司. 结果那天她被记旷工了...... 吃惊]
title: 悟空和唐僧一起上某卫视非诚勿扰 悟空和唐僧一起上某卫视非诚勿扰, 悟空上台, 24 盏灯全灭. 理由: 1. 没房没车只有一根破棍. 2. 保镖职业危险. 3. 动不动打妖精, 对女生不温柔. 4. 坐过牢, 曾被压五指山下 500 年. 唐僧上台, 哗! 灯全亮. 理由: 1. 公务员; 2. 皇上兄弟, 后台最硬 3. 精通梵文等外语 4. 长得帅 5. 最关键一点: 有宝马!
title: 为了某个在乎你的人, 请节约你的真心 Save your heart for someone who cares. 为了某个在乎你的人, 请节约你的真心!
2.2 对图片的爬取
程序代码:
- # # #对图片的爬取
- # # 首先第一步要做的就是导入需要用到的模块库
- import re
- import requests
- # 获取要爬取信息页面的内容
- for i in range(10):
- url = f'http://www.nipic.com/design/acg/renwu/index.html?page={i+1}'
- reponse = requests.get(url)
- # 使用 data 变量将页面信息传递过来
- data = reponse.text
- # 编写正则表达式获取有效的内容(每张图片的 url 地址)
- results = re.findall('data-src="(.*?)"',data)
- # 循环拿出每个图片的 url
- count = 0
- print(f"正在爬出第 {i+1} 页的信息...")
- for result in results :
- # 请求页面获取图片信息存入变量中
- images_data = requests.get(result)
- # 取出文件名
- images_name = result.split('/')[-1]
- # 格式化 图片信息成二进制形式
- images_content = images_data.content
- # 将二进制文件生成图片并保存
- with open('images\\'+images_name, 'wb') as f:
- f.write(images_content)
- f.flush()
- count += 1
- print(f'保存第 {count} 张图片成功')
运行结果:
正在爬出第 1 页的信息...
保存第 1 张图片成功
保存第 2 张图片成功
保存第 3 张图片成功
保存第 4 张图片成功
保存第 5 张图片成功
保存第 6 张图片成功
保存第 7 张图片成功
保存第 8 张图片成功
保存第 9 张图片成功
保存第 10 张图片成功
保存第 11 张图片成功
保存第 12 张图片成功
保存第 13 张图片成功
.....
2.3 对视频的爬取
程序代码:
- # # # 对视频的爬取
- import re
- import requests
- # 要爬取网站的 url
- url = 'http://www.mod.gov.cn/v/'
- response = requests.get(url)
- response.encoding = 'utf8'
- data = response.text
- page_url = re.findall('<a href="(.*?.htm)"',data)
- for i in page_url:
- page_url = 'http://www.mod.gov.cn/v/'+i
- page_res = requests.get(page_url)
- page_data = page_res.text
- video_url = re.findall('//Video (.*?.mp4)',page_data)[0]
- video_name = video_url.split('/')[-1]
- video_data = requests.get(video_url).content
- with open('videos\\'+video_name,'wb') as f:
- f.write(video_data)
- f.flush()
- break
运行结果:
会在程序文件夹下的 videos 文件夹中保存视频的文件
总结
? 今日份学习的是 Python 的爬虫相关的知识. 通过实际操作掌握了, python 的强大, 对网页信息的获取以及内容处理这一块的功能表示叹服, 学到了很多新的知识, 也通过实际动手操作成功的对文字, 图片, 视频等网站进行了爬取, 开心 ing
Python 学习第七天之爬虫的学习与使用(爬取文字, 图片, 视频)
来源: http://www.bubuko.com/infodetail-3131340.html