Reptile_01 Html网页爬虫(BeautifulSoup模块)

BeautifulSoup 主要用来解析和提取Htm网页中的数据

由于BeautifulSoup不是Python标准库,需要单独安装它,我们的学习系统已经安装好了。如果你是在自己的电脑上运行,需要在终端输入一行代码运行:pip install BeautifulSoup4

BeautifulSoup解析数据的用法很简单:

bs对象 = BeautifulSoup(要解析的文本,‘解析器’)

解析器,用的是一个Python内置库:html.parser。(它不是唯一的解析器,但是比较简单的)

Html爬虫步骤

以下以进度新闻为例,爬虫“热点新闻”标题与新闻连接地址

1.获取数据 requests.get(‘URL’)

geturl = requests.get('URL') #获取网页源代码,得到的url是response对象

2.解析数据 BeautifulSoup(geturl.text,‘html.parser’)

text_url = BeautifulSoup(geturl .text,'html.parser') #把网页解析为BeautifulSoup对象

3.提取数据 find()与find_all(),以及Tag对象

find()可以提取出首个元素,而find_all()可以提取出全部
Reptile_01 Html网页爬虫(BeautifulSoup模块)
Reptile_01 Html网页爬虫(BeautifulSoup模块)

pane_news = text_url.find_all('strong') # 通过定位标签和属性提取我们想要的数据

for i in pane_news:  #循环读取pane_news 数据列表
   newlist = i.find('a').text	 #获取新闻标题
   newhref = i.find('a')['href'] #获取连接地址
   print(newlist,newhref)   #打印新闻标题和连接地址
   
打印结果:

Reptile_01 Html网页爬虫(BeautifulSoup模块)
4.存储数据
存储内容说明,查看Reptile_03 Cvs和xlsx存储

以下为完整代码:

import requests #调用requests库
from bs4 import BeautifulSoup 

#----------获取数据
geturl = requests.get('http://news.baidu.com/') #获取网页源代码,得到的url是response对象

#----------解析数据
text_url = BeautifulSoup(geturl.text,'html.parser') #把网页解析为BeautifulSoup对象

#----------提取数据数据
pane_news = text_url.find_all('strong') # 通过定位标签和属性提取我们想要的数据

for i in pane_news: #循环读取pane_news 数据列表
   newlist = i.find('a').text #获取新闻标题
   newhref = i.find('a')['href'] #获取连接地址
   print(newlist,newhref) #打印新闻标题和连接地址
上一篇:css 相对定位 绝对定位 浮动 分析


下一篇:巨杉学习笔记 | SequoiaDB MySQL导入导出工具使用实战