学习任务
1.认识网页解析器
学习目标
知识目标
1.熟悉网页解析器
能力目标
1.能够自主编写网页解析器
获取新URL函数
解析数据函数
得到新的URL列表函数
任务实施
展示代码
任务实施1图片 任务实施2图片
操作演示
知识点总结
1.网页解析器具备的功能
2.网页解析器需要编写的函数
问题
1.什么是网页解析器
2.网页解析器的作用
3.有哪几种网页解析器
答案
1.从网页中提取有价值信息的工具
2.以下载好的html网页字符串为根本提取出有价值的信息,得出URL列表
3.正则表达式解析:将整个html网页当做字符串来进行模糊匹配
结构化解析:将整个网页文档加载城一个DOM树来进行解析
1.认识网页解析器
学习目标
知识目标
1.熟悉网页解析器
能力目标
1.能够自主编写网页解析器
获取新URL函数
#获取新的URL
def _get_new_urls(self,page_url,soup):
#存储URL
new_urls=set();
#获取所有的URl
#/view/\d+\.htm
links=soup.find_all('a',href=re.compile(r''))
for link in links:
#获取每一个URL
new_url=link['href']
#上面获取的URl不完整要拼接
#urljoin 这个函数能够按照page_url的格式拼接字符串
new_full_url=urlparse.urljoin(page_url,new_url)
new_urls.add(new_full_url)
return new_urls
解析数据函数
#解析数据 我们需要解析title和soup两个数据
def _get_new_data(self,page_url,soup):
res_data={}
res_data['url']=page_url;
#匹配title节点
title_node=soup.find('dd',class_='lemmaWgt-lemmaTitle-title',).find('h1')
#获取title的文本信息
res_data['title']=title_node.get_text();
summary_node=soup.find('div',class_='lemma-summary')
res_data['summary'] = summary_node.get_text();
return res_data
得到新的URL列表函数
#从cont中解析出两个数据(新的URL列表和数据)
def parse(self,page_url,html_cont):
if page_url is None and html_cont is None:
return;
soup=BeautifulSoup(html_cont,'html.parser',from_encoding='utf-8')
new_urls=self._get_new_urls(page_url,soup)
#进行解析出新的数据
new_data = self._get_new_data(page_url, soup)
return new_urls,new_data
任务实施
展示代码
任务实施1图片 任务实施2图片
操作演示
知识点总结
1.网页解析器具备的功能
2.网页解析器需要编写的函数
问题
1.什么是网页解析器
2.网页解析器的作用
3.有哪几种网页解析器
答案
1.从网页中提取有价值信息的工具
2.以下载好的html网页字符串为根本提取出有价值的信息,得出URL列表
3.正则表达式解析:将整个html网页当做字符串来进行模糊匹配
结构化解析:将整个网页文档加载城一个DOM树来进行解析