python爬虫实例
时间: 2023-08-29 15:11:42 浏览: 130
python 爬虫实例
好的,下面是一个Python爬虫框架Scrapy的实例,包括如何定义爬虫和使用Scrapy框架中的其他功能。
首先,您需要安装Scrapy。您可以使用以下命令在命令行中安装Scrapy:
```
pip install scrapy
```
安装完成后,您可以开始编写您的第一个Scrapy爬虫。在这个例子中,我们将使用Scrapy爬取网站https://quotes.toscrape.com/,并提取每个名人名言中的文本和作者。
1. 创建项目
在命令行中,创建一个新的Scrapy项目:
```
scrapy startproject quotes_spider
```
这将创建一个名为“quotes_spider”的新目录,并在其中生成一些默认文件。
2. 定义爬虫
接下来,我们需要定义一个Scrapy爬虫。在项目目录下的“spiders”文件夹中,创建一个新的Python文件,名为“quotes_spider.py”。在该文件中,定义一个名为“QuotesSpider”的类,继承自“scrapy.Spider”类。
```python
import scrapy
class QuotesSpider(scrapy.Spider):
name = "quotes"
start_urls = [
'http://quotes.toscrape.com/page/1/',
]
def parse(self, response):
for quote in response.css('div.quote'):
yield {
'text': quote.css('span.text::text').get(),
'author': quote.css('span small::text').get(),
}
next_page = response.css('li.next a::attr(href)').get()
if next_page is not None:
yield response.follow(next_page, self.parse)
```
在上述代码中,我们首先定义了“QuotesSpider”类的名称和起始URL。在“parse”方法中,我们使用“response.css”方法来选择页面中所有名言的HTML元素,并使用“yield”语句返回文本和作者。
然后,我们在“next_page”变量中选择下一页的URL,如果有下一页,我们将使用“response.follow”方法继续爬取该页。这将递归地调用“parse”方法,直到没有更多的页面可供爬取。
3. 运行爬虫
现在,我们已经定义了一个Scrapy爬虫,我们可以在命令行中使用以下命令来运行它:
```
scrapy crawl quotes
```
这将启动名为“quotes”的爬虫,并开始爬取https://quotes.toscrape.com/网站。当爬虫完成时,它将输出爬取的数据。
这是一个简单的Scrapy实例,演示了如何定义一个爬虫并使用Scrapy框架中的其他功能。Scrapy提供了许多其他功能,例如数据存储、中间件、管道等。使用这些功能,您可以轻松地扩展您的爬虫并实现更高级的功能。
阅读全文