1、什么是互联网
互联网其实是由一堆网络设备(比如: 网线、路由器、交换机、防火墙等等...)与一台台的计算机连接而成,就像一张蜘蛛网一样。
2、互联网建立的目的
互联网的核心价值: 数据是存放在一台台计算机中的,而互联网是把计算机互联到一起,也就是说把一台台计算机中的数据都捆绑到一起了,目的就是为了能够方便每台计算机彼此之间数据的传递与数据的共享,否则你只能拿到U盘或者是移动硬盘去别人的计算机上拷贝数据了。
3、什么是上网
上网其实指的是有用户端(客户端)的计算机向目标计算机发送请求,将目标计算机的数据下载到客户端计算机的过程。
(1)普通用户获取数据的方式:
浏览器提交请求 ---> 下载页面代码 ---> 解析/渲染成页面。
(2)爬虫程序获取数据的方式:
模拟浏览器发送请求 ---> 下载页面代码 ---> 只提取有用的数据 ---> 存放于数据库中或文件中。
(3)普通用户与爬虫程序的区别:
普通用户: 普通用户是通过打开浏览器访问网页,浏览器会接收所有的数据。
爬虫程序: 爬虫程序只提取网页代码中对我们有价值的数据。
4、爬虫的总结
爬虫的比喻:
如果我们把互联网比喻成一张大的蜘蛛网,那一台计算机上的数据就是蜘蛛网上的猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的猎物(数据)。
爬虫的定义:
伪装成浏览器向目标网站发送请求,获取响应资源后解析并提取有价值的数据的程序。
爬虫的价值:
互联网中最有价值的便是数据,例如: 天猫、淘宝、京东商品的商品信息,链家网的租房/房源信息,雪球网的证券投资信息等等...这些数据都代表了各个行业最有价值的东西,若谁掌握了行业内的第一手数据,那么谁就能成为这个行业的主宰。如果把互联网中的数据比喻成一座宝藏,那我们的爬虫课程就是教大家如何高效地挖掘这些宝藏,掌握了爬虫技能,你就能成为所有互联网信息公司的幕后老板,换言之,他们都是在免费为你提供有价值的数据。
5、爬虫的全过程
1、发送请求 (需要请求库:Requests请求库、Selenium请求库)
2、获取响应数据 (只要往服务器发送请求,请求通过后会返回响应数据)
3、解析并提取数据 (需要解析库:re、BeautifulSoup4、Xpath...)
4、保存到本地 (文件处理、数据库、MongoDB存储库)
'''import requests response = requests.get(url='http://www.baidu.com/') response.encoding = 'utf-8' print(response.text) with open('baidu.html','w',encoding='utf-8') as f: f.write(response.text)'''
'''import requests response = requests.get('https://www.pearvideo.com/video_1570446') print(response.content) with open('视频.mp4','wb') as f: f.write(response.content)'''
爬取视频
import requests import re response = requests.get('https://www.pearvideo.com/') res_list = re.findall('<a href="video_(.*?)"',response.text, re.S) for v_id in res_list: detail_url = 'https://www.pearvideo.com/' + v_id response = requests.get(url=detail_url) video_url = re.findall('srcUrl="(.*?)"',response.text, re.S)[0] video_name = re.findall('<h1 class="video-tt">(.*?)</h1>',response.text, re.S)[0] print(video_name) v_response = requests.get(video_url) with open('%s.mp4' % video_name, 'wb') as f: f.write(v_response.content) print(video_name, '视频爬取完成')
电影排名
if _name_ == '_main_': num = 0 for line in range(10): base_url = f'https://movie.douban.com/top250?start={num}&filter=' num +=25 print(base_url) response = get_page(base_url) movie_list = parse_index(response.text) for movie in movie_list: v_top, v_url, v_name, v_director, v_point, v_num, v_desc = movie movie_content = f ''' 电影排名:{v_top} 电影url: {v_url} 电影名称: {v_name} 电影导演:{v_director} 电影评分:{v_point} 评价人数:{v_num} 电影简介:{v_desc} \n ''' print(movie_content) save_data(movie_content)