爬虫3 html解析器 html_parser.py

#coding:utf8
import urlparse
from bs4 import BeautifulSoup
import re

__author__ = ‘wang‘

class HtmlParser(object):
    def parse(self, page_url, html_cont):
        if page_url is None or 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;

    def _get_new_urls(self, page_url, soup):
        new_urls = set()
        links = soup.find_all(‘a‘, href=re.compile(r"/view/\d+\.htm"))

        for link in links:
            new_url = link[‘href‘]
            new_full_url = urlparse.urljoin(page_url, new_url);
            new_urls.add(new_full_url)

        return new_urls

    def _get_new_data(self, page_url, soup):
        res_data = {}
        res_data[‘url‘] = page_url
        title_node = soup.find(‘dd‘, class_=‘lemmaWgt-lemmaTitle-title‘).find("h1")
        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
时间: 2024-10-11 19:41:02

爬虫3 html解析器 html_parser.py的相关文章

爬虫学习——网页解析器Beautiful Soup

一.Beautiful Soup的安装与测试 官方网站:https://www.crummy.com/software/BeautifulSoup/ Beautiful Soup安装与使用文档:  https://www.crummy.com/software/BeautifulSoup/bs4/doc/ 1.首先测试一下bs4模块是否已经存在,若不存在再安装即可,我用的是kali测试发现bs4模块已经存在,下面介绍如何测试与安装 新建python文档输入以下代码 1 import bs4 2

爬虫5 html下载器 html_downloader.py

#coding:utf8 import urllib2 __author__ = 'wang' class HtmlDownloader(object): def download(self, url): if url is None: return None response = urllib2.urlopen(url) if response.getcode() != 200: return None return response.read()

爬虫2 url管理器 url_manager.py

#coding:utf8 class UrlManager(object): def __init__(self): self.new_urls = set() self.old_urls = set() def add_new_url(self, url): if url is None: return if url not in self.new_urls and url not in self.old_urls: self.new_urls.add(url) def add_new_url

爬虫4 html输出器 html_outputer.py

#coding:utf8 __author__ = 'wang' class HtmlOutputer(object): def __init__(self): self.datas = []; def collect_data(self, data): if data is None: return print data self.datas.append(data) def output_html(self): fout = open('output.html', 'w') fout.wri

python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding:utf-8from com.wenhy.crawler_baidu_baike import url_manager, html_downloader, html_parser, html_outputer print "爬虫百度百科调度入口" # 创建爬虫类class SpiderMai

爬虫Scrapy框架-Crawlspider链接提取器与规则解析器

一:Crawlspider简介 CrawlSpider其实是Spider的一个子类,除了继承到Spider的特性和功能外,还派生除了其自己独有的更加强大的特性和功能.其中最显著的功能就是"LinkExtractors链接提取器".Spider是所有爬虫的基类,其设计原则只是为了爬取start_url列表中网页,而从爬取到的网页中提取出的url进行继续的爬取工作使用CrawlSpider更合适. 二:Crawlspider使用 实例:爬取https://www.qiushibaike.c

唉,没来这里好久了,也意味着我这一年多来没干什么正事儿,是回归的时候了!(简单谈谈爬虫的解析器)

现在ACM不搞了,一看上一篇文章的发布时间是13年2月,着实把自己吓了一跳.既然已经开始实习了,那就搞搞技术吧,但是算法的学习还不能断,算法导论还有好多知识没学呢嗯,既然实习期间分配的任务是搞一搞爬虫,那我就来说说java的html解析器的具体解析方式吧.首先网络爬虫的大体运行原理大家应该都知道了,如果不知道的话去Google一下,一搜一大把,我就不在这里赘述了.我主要想说的是具体的解析过程到底是怎么运作的,请看下面一段代码,不,是两段代码: 1 InputStream in = url.ope

Python爬虫(十四)_BeautifulSoup4 解析器

CSS选择器:BeautifulSoup4 和lxml一样,Beautiful Soup也是一个HTML/XML的解析器,主要的功能也是如何解析和提取HTML/XML数据. lxml只会局部遍历,而Beautiful Soup是基于HTML DOM的,会载入整个文档,解析整个DOM树,因此时间和内存开销都会大很多,所以性能要低于lxml. BeautifulSoup用来解析HTML比较简单,API非常人性化,支持CSS选择器.Python标准库中的HTML解析器,也支持lxml的XML解析器.

Python爬虫开发【第1篇】【beautifulSoup4解析器】

CSS 选择器:BeautifulSoup4 Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据. pip 安装:pip install beautifulsoup4 官方文档:http://beautifulsoup.readthedocs.io/zh_CN/v4.4.0 抓取工具 速度 使用难度 安装难度 正则 最快 困难 无(内置) BeautifulSoup 慢 最简单 简单 lxml 快 简单 一般 使用Beautifu