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的蜘蛛示例, 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的官方文档”,了解哪些可用。 |
Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )
GMT+8, 2024-11-9 20:30 , Processed in 0.098871 second(s), 17 queries .