笨鸟编程-零基础入门Pyhton教程

 找回密码
 立即注册

常见问题

发布者: 笨鸟自学网

Scrapy与BeautifulSoup或LXML相比如何?

BeautifulSoup 和 lxml 是用于分析HTML和XML的库。Scrapy是一个应用程序框架,用于编写爬行网站并从中提取数据的网络蜘蛛。

Scrapy提供了一种用于提取数据的内置机制(称为:ref:selectors <topics-selectors>)但你可以轻松使用`BeautifulSoup`_(或`lxml`_),如果你觉得使用它们更舒服。 毕竟,他们只是解析可以从任何Python代码导入和使用的库。

换句话说,将`BeautifulSoup`_(或`lxml`_)与Scrapy进行比较就像将`jinja2`_与`Django`_进行比较。

我可以和BeautifulSoup一起使用Scrapy吗?

是的你可以。 如上所述:ref:above <faq-scrapy-bs-cmp>`BeautifulSoup`_可用于解析Scrapy回调中的HTML响应。 您只需将响应的主体提供给``BeautifulSoup``对象,并从中提取所需的任何数据。

下面是一个使用BeautifulSoupAPI的蜘蛛示例, lxml 作为HTML解析器:

from bs4 import BeautifulSoup
import scrapy


class ExampleSpider(scrapy.Spider):
    name = "example"
    allowed_domains = ["example.com"]
    start_urls = (
        'http://www.example.com/',
    )

    def parse(self, response):
        # use lxml to get decent HTML parsing speed
        soup = BeautifulSoup(response.text, 'lxml')
        yield {
            "url": response.url,
            "title": soup.h1.string
        }

注解

``BeautifulSoup``支持几种HTML / XML解析器。 请参阅“BeautifulSoup的官方文档”,了解哪些可用。


上一篇:远程登录控制台下一篇:调试spiders

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2024-11-21 17:39 , Processed in 0.034697 second(s), 17 queries .

© 2001-2020

返回顶部