# -*-encoding:utf-8 -*-
import re
import urllib
from bs4 import BeautifulSoup
class HtmlParse(object):
"""docstring for HtmlParse"""
def parse(self,page_url,html_cont):
'''
用于解析网页内容,抽取url和数据
'''
if page_url is None or html_cont is None:
return
soup = BeautifulSoup(html_cont,'html.parser')
new_urls = self._get_new_urls(page_url,soup)
new_data = self._get_new_data(page_url,soup)
#print(new_urls,new_data)
return new_urls,new_data
def _get_new_urls(self,page_url,soup):
"""
抽取新的URL集合
"""
new_urls = set()
#抽取符合条件的a标记
links = soup.find_all('a',href=re.compile(r'/view/\d+\.html'))
print(links)
for link in links:
#提取href属性
new_url = link['href']
#拼接网址
new_full_url =urllib.urlparse.urljoin(page_url,new_url)
new_urls.add(new_full_url)
return new_urls
def _get_new_data(self,page_url,soup):
"""
提取有效数据
"""
data = {}
data['url'] = page_url
title = soup.find('dd',class_='lemmaWgt-lemmaTitle-title').find('h1')
data['title'] = title.get_text()
summary = soup.find('div',class_= 'lemma-summary')
#获取tag中包含的所有文本内容,包括子孙tag中的内容,并将结果作为Unicode字符返回
data['summary'] = summary.get_text()
#print(data)
return data
Python基本爬虫(HTML解析器)
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 在前几篇文章,我们学会了如何获取html文档内容,就是从url下载网页。今天开始,我们将讨论如何将html转成py...