You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scrapy-Playwright无法滚动页面,仅能获取初始链接的问题求助

Scrapy-Playwright无法滚动页面,仅能获取初始链接的问题求助

各位大佬好,我最近在用Scrapy结合Playwright爬取TikTok页面时遇到了棘手的问题:只能获取页面初始加载出来的链接,不管尝试哪种PageMethod操作,截图始终都是初始页面的样子。我试过用keyboard.press模拟按键、mouse.wheel模拟滚轮滚动,甚至看过官方文档后把滚动操作移到了parse方法里执行,但都没解决问题,实在摸不着头绪,麻烦帮忙看看哪里出问题了!

以下是我的代码:

import scrapy
from scrapy.utils.response import open_in_browser
from scrapy_playwright.page import PageMethod
from scrapy.selector import Selector
import asyncio

class YtspiderSpider(scrapy.Spider):
    name = "ytspider"

    def start_requests(self):
        yield scrapy.Request('https://www.tiktok.com/@huberman.clips', meta={
            'playwright':True,
            'playwright_include_page': True,
            'playwright_page_methods': [
                PageMethod('wait_for_load_state','networkidle'),
                PageMethod('wait_for_selector', 'div.tiktok-16ou6xi-DivTagCardDesc.eih2qak1'),
                PageMethod('evaluate', "window.scrollBy(0, document.body.scrollHeight);")
            ],
        },
        errback= self.close_page
        )

    async def parse(self, response):
        try:
            page = response.meta['playwright_page']
            await page.screenshot(path="test.png", full_page=True)
            html = await page.content()
            s = Selector(text=html)
            for container in s.css('div.tiktok-16ou6xi-DivTagCardDesc.eih2qak1'):
                link = container.css('a::attr(href)').get()
                yield {
                    'link': link
                }
            await page.close()
        except Exception as e:
            self.log(f"An error occurred: {e}")
            await self.close_page(e)

备注:内容来源于stack exchange,提问作者RookiePython

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 12:49:32