Scrapy:使用scrapy在网页上抓取“下一页”结果

2024-10-03 13:19:50 发布

您现在位置:Python中文网/ 问答频道 /正文

# -*- coding: utf-8 -*-
import scrapy
from scrapy.http import Request

class InfoSpider(scrapy.Spider):

    name = 'info'
    allowed_domains = ['womenonlyconnected.com']
    start_urls =['http://www.womenonlyconnected.com/socialengine/pageitems/index']

    def parse(self, response):
        urls =  response.xpath('//h3/a/@href').extract()
        for url in urls:
            absolute_url = response.urljoin(url)
            yield Request(absolute_url , callback = self.parse_page)



    def parse_page(self , response):
        pass

这是我的代码使用这个代码我可以只抓取前24个链接只需要在刮除所有链接后“查看更多”页面上的帮助 pag url被指定为bbelow http://www.womenonlyconnected.com/socialengine/pageitems/index


Tags: importselfcomhttpurlindexparseresponse
1条回答
网友
1楼 · 发布于 2024-10-03 13:19:50

经过一点调查,可以发现您可以使用以下URL进行分页:

http://www.womenonlyconnected.com/socialengine/pageitems/index?page=N

其中N从第一页的1开始,等等,所以我将修改您的spider,如下所示:

^{pr2}$

我停在第100页的原因是,要确定是否有更多的结果以及是否应该转到下一页并不容易。理论上,您可以检查页面上是否存在查看更多元素。问题是它总是存在的,如果没有更多的页面显示结果,它就会隐藏起来。但是隐藏这个元素是使用JavaScript的,所以Scrapy总是看到它是隐藏的。为了可靠地判断是否有更多的页面,您必须使用例如Splash呈现该页面。在

相关问题 更多 >