电子商务自助建网站,专业的网站设计师,英文商城网站,求一个网站你知道的目录
引言
一、网络爬虫的概念
二、 网络爬虫的基本工作流程
#xff08;一#xff09;过程#xff1a;
#xff08;二#xff09;安装requests模块和beautifulsoup4模块
#xff08;三#xff09;requests库的使用
1、requests库的基本介绍
2、导入requests库的…目录
引言
一、网络爬虫的概念
二、 网络爬虫的基本工作流程
一过程
二安装requests模块和beautifulsoup4模块
三requests库的使用
1、requests库的基本介绍
2、导入requests库的具体语法格式如下
3、requests库网页请求方法
4、requests库的-Response对象
四beautifulsoup4库的使用
1、beautifulsoup4库的基本介绍
2、导入BeautifulSoup库的具体语法格式如下
3、beautifulsoup4库的常用操作
4、元素中的文本信息往往是有用信息下面将介绍用BeautifulSoup类解析HTML页面中的有用信息分为 节点选择器 方法选择器
4.1 节点选择器
4.2 方法选择器
三、实战电影排行爬取及分析
1、获取网页
2、解析网页
3、存储数据
总结 引言 网络爬虫是自动从互联网上抓取信息的工具其应用范围十分广泛特别是在大数据分析、搜索引擎优化和信息采集等领域中具有重要作用。通过网络爬虫我们能够快速获取大量网页数据并利用数据分析工具对信息进行深入的解析与处理。这次实验旨在学习和实践如何使用Python中的requests和beautifulsoup4库完成从网页获取数据、解析数据到存储数据的完整流程。 一、网络爬虫的概念 网络爬虫Web Crawler是按照一定的规则自动地抓取万维网World Wide Web,WWW并获取信息的程序或脚本。在浏览器的网页中除了供用户阅读的文字信息外还包括一些超链接网络爬虫可以通经过网页中的超链接不断地获得网络上的其它页面。网络数据采集的过程像爬虫在网络上漫游因此得名为网络爬虫。 二、 网络爬虫的基本工作流程
简单的网络爬虫通常分为以下三个部分的内容
数据采集即获取网页中的数据
数据处理即进行网页解析
数据存储即将有用的信息持久化。 一过程
设定抓取目标初始URL并获取页面。不断地爬取页面直到满足停止爬取的条件。对于获取的页面进行网页下载获得网页中的数据。获得网页中的数据需要用到Python中的requests模块。获取网页中的数据后需要对此数据进行解析。进行网页解析需要用到Python中的beautifulsoup4模块。对于网页解析出来的数据可以对有用的信息进行存储。有用的信息可以存储在文件中也可以存储在数据库中还可以进行可视化的展示。 二安装requests模块和beautifulsoup4模块
pip install requests
pip install beautifulsoup4 三requests库的使用
1、requests库的基本介绍 requests库的本质就是封装了urllib3模块它可以模拟浏览器的请求编写过程更接近正常URL的访问过程。requests库的宗旨是服务于人类for human beings具有以下功能特性
支持URL数据自动编码支持HTTP连接保持和连接池支持使用Cookie保持会话支持文件分块上传支持自动确定相应内容的编码支持连接超时处理和流数据下载。 2、导入requests库的具体语法格式如下 import requests 3、requests库网页请求方法
requests库中包含与HTTP协议的请求相对应的方法即网页请求方法。 例如
使用requests库中的get()方法访问网址http://www.mobiletrain.org import requests r requests.get(http://www.mobiletrain.org) print(type(r)) 通过get()方法访问网址返回了一个Response对象 class requests.models.Response 4、requests库的-Response对象
Response对象代表的是响应内容其属性如下表所示。 import requestsr requests.get(http://www.mobiletrain.org)r.encoding r.apparent_encoding # 自动检测编码content r.content # 使用content属性获取二进制内容print(content.decode(utf-8).encode(gbk, ignore).decode(gbk)) # 先按utf-8解码再按gbk编码打印 四beautifulsoup4库的使用
1、beautifulsoup4库的基本介绍
通过requests库获取HTML页面内容后需要进一步解析HTML格式提取其中的有用数据。beautifulsoup4库是一个可以解析HTML或者XML文件的Python库它具有以下三个特点。beautifulsoup4库提供了用于浏览、搜索和修改解析树的简洁函数可以通过解析文档为用户提供需要抓取的数据。beautifulsoup4库自动将输入文档稳定转换为Unicode编码输出文档转换为utf-8编码。不需要考虑编码方式除非文档没有指定编码方式此时beautifulsoup4库不能自动识别编码方式需要说明一下原始编码方式。beautifulsoup4库能够为用户灵活地提供不同的解析策略或者是较快的交易速度。 2、导入BeautifulSoup库的具体语法格式如下
beautifulsoup4库中最主要的是BeautifulSoup类一般通过导入此类来解析网页内容。 from bs4 import BeautifulSoup 3、beautifulsoup4库的常用操作
导入BeautifulSoup类后可以创建BeautifulSoup对象。 import requests from bs4import BeautifulSoup url http://www.mobiletrain.org r requests.get(url) r.encoding utf-8 soup BeautifulSoup(r.text,html.parser)print(type(soup)) class bs4.BeautifulSoup 4、元素中的文本信息往往是有用信息下面将介绍用BeautifulSoup类解析HTML页面中的有用信息分为 节点选择器 方法选择器 通过BeautifulSoup对象的属性可以选择节点元素并获得节点的信息这些属性与HTML的标签名称相同。
4.1 节点选择器 使用BeautifulSoup对象获得元素内容
import requests from bs4import BeautifulSoupurl http://www.mobiletrain.orgr requests.get(url) r.encoding utf-8soup BeautifulSoup(r.text,html.parser)print(soup.title) #获取页面的title内容print(soup.p) #获取页面的第一个p内容 title千锋教育-坚持教育初心坚持面授品质IT培训良心品牌/title p classbubble小小千想和您聊一聊/p 如果想要获得HTML标签中各个属性的内容则需要通过Tag对象的属性去获取 使用BeautifulSoup对象获得标签的详细信息 import requests from bs4import BeautifulSoupurl http://www.mobiletrain.orgr requests.get(url)r.encoding utf-8soup BeautifulSoup(r.text,html.parser)print(p标签,soup.p)print(p标签的名称,soup.p.name)print(p标签的属性,soup.p.attrs)print(p标签的子标签,soup.p.contents)print(p标签包含的文本内容,soup.p.string) p标签 p classbubble小小千想和您聊一聊/pp标签的名称 pp标签的属性 {class: [bubble]}p标签的子标签 [小小千想和您聊一聊]p标签包含的文本内容 小小千想和您聊一聊 string属性应遵循以下原则
标签内部嵌套多层标签时string属性返回None
标签内部有一个标签时string属性返回内层标签包含的文本内容
标签内部没有标签时string属性返回其包含的文本内容。 4.2 方法选择器 在HTML页面中div、a、p等标签往往不止一个节点选择器无法获得所有同名标签的内容此时就要选择使用方法选择器。使用BeautifulSoup类中的方法可以获得HTML中的标签内容主要的方法包括find()和find_all()可以根据参数找到对应标签返回列表类型。 BeautifulSoup.find(name,attrs,recursive,string) BeautifulSoup.find_all(name,attrs,recursive,string,limit) find()和find_all()方法中的参数说明 find()和find_all()的区别在于find()方法仅返回找到的第一个结果而find_all()可以返回找到的所有结果也就是说find()方法相当于参数limit为1时的find_all()方法。 例使用find_all()方法获得所有的i
import requests from bs4 import requests from bs4import BeautifulSoupurl http://www.mobiletrain.orgr requests.get(url)r.encoding utf-8soup BeautifulSoup(r.text, html.parser)for item in soup.find_all(i): print(item.string, end ) 三、实战电影排行爬取及分析
1、获取网页 User-Agent简称UA 大量的爬虫请求会使服务器的压力过大使得网页响应速度变慢影响网站的政策运行所以网站一般会检验UA来判断发起请求的是不是机器人。故需要自己设置UA进行简单伪装。 headers {User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1} 需要将此键值对传入requests库中的get()方法获取网页的函数可以写成如下形式。 def get_html(url,headers): r requests.get(url,headersheaders) html r.text 2、解析网页
定位文本内容所在标签 标签中的有用内容 3、存储数据
将解析网页后获得的有用数据列表转换为字典元素形式并存入JSON格式的文件中。
movie.json 爬取具体步骤 1、选择网站 2、解析网页 3、定位标签所在位置 4、提取文本数据 5、筛选数据 6、存储数据 总结 通过本次实验深入理解了网络爬虫的基本原理和工作流程掌握了使用Python编写爬虫的核心技术。实验过程中我们学习了如何利用requests库获取网页内容并通过beautifulsoup4库对HTML页面进行解析。此外还学会了将爬取的数据进行存储为后续的数据处理打下了坚实的基础。整个过程提升了我们在网络数据采集方面的实践能力也为今后在大数据和信息处理领域的应用提供了宝贵经验。