scrapy框架多页面爬取
时间: 2023-11-02 19:58:32 浏览: 106
Scrapy框架可以非常方便地实现多页面爬取。以下是一个简单的例子,演示如何爬取某个网站的多个页面:
```python
import scrapy
class MySpider(scrapy.Spider):
name = 'myspider'
start_urls = ['https://example.com/page/1', 'https://example.com/page/2']
def parse(self, response):
# 处理每个页面的响应
# ...
# 如果要爬取更多页面,可以在这里构造请求并返回
next_page = response.css('a.next-page::attr(href)').get()
if next_page:
yield scrapy.Request(response.urljoin(next_page), self.parse)
```
在上面的例子中,`start_urls` 数组包含要爬取的页面的URL。在 `parse` 方法中,我们可以对每个页面的响应进行处理。如果要爬取更多页面,我们可以在 `parse` 方法中构造请求并返回,Scrapy将自动调用 `parse` 方法来处理这些请求的响应。
在上面的例子中,我们使用了CSS选择器来查找下一页的链接,并构造了一个新的请求来爬取下一页。`response.urljoin(next_page)` 可以将相对链接转换为绝对链接,以便Scrapy可以正确地发送请求。
上面的代码只是一个例子,你可以根据自己的需要进行修改和扩展。
阅读全文