美文网首页
scrapy 下一页链接请求

scrapy 下一页链接请求

作者: 戒灵 | 来源:发表于2018-09-26 10:46 被阅读0次

    ```

    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').extract_first(),

                    'author': quote.css('small.author::text').extract_first(),

                    'tags': quote.css('div.tags a.tag::text').extract(),

                }

            next_page = response.css('li.next a::attr(href)').extract_first()

            if next_page is not None:

                next_page = response.urljoin(next_page)

                yield scrapy.Request(next_page, callback=self.parse)

    ```

    现在,在提取数据后,parse()方法查找到下一页的链接,使用urljoin()方法构建完整的绝对URL(因为链接可以是相对的),并产生一个新的请求到下一个页面,将自己作为回调函数来处理下一页的数据提取,并保持遍历所有页面的抓取。

    在这里您将看到Scrapy的跟随链接机制:当您在回调方法中产生请求时,Scrapy会安排发送请求并注册一个回调方法,以便在请求结束时执行。

    使用这种方法,您可以根据您定义的规则构建复杂的抓取工具,并根据所访问的页面提取不同类型的数据。

    在我们的例子中,它创建了一个循环,找下一页的所有链接,直到它找不到。这种做法对于抓取分页的博客,论坛和其他网站的链接是很方便的。

    ---------------------本文来自 pythonisnotshell 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/pythonisnotshell/article/details/80538401?utm_source=copy

    相关文章

      网友评论

          本文标题:scrapy 下一页链接请求

          本文链接:https://www.haomeiwen.com/subject/ayrdoftx.html