Scrapy-Playwright无法加载网页桌面版的问题求助
Scrapy-Playwright无法加载网页桌面版的问题求助
大家好,我正在做一个仅用于学习的爬虫项目,用scrapy-playwright来抓取动态渲染的页面,但遇到了个麻烦:浏览器默认窗口尺寸太小,每次都会加载网页的移动端版本,直接导致我的抓取逻辑没法正常运行。
我查了Playwright的相关文档,了解到有两种解决思路:一是把视口设置成桌面端的全屏尺寸,二是通过设备模拟功能伪装成桌面设备。我觉得设备模拟的实现有点复杂,就先尝试了设置视口尺寸的方法。
我试着在请求的meta参数里的playwright_page_methods中添加了set_viewport_size方法,但完全没生效——页面还是以原来的小尺寸打开,而且爬虫直接自行终止了,根本没开始抓取流程。
下面是我start_requests函数里的代码片段:
url = f"{base_url}{encoded_medicine}" meta = { "playwright": True, "playwright_page_methods": [ # PageMethod("set_viewport_size",'({"width": 1920, "height": 1080})'), PageMethod("wait_for_selector", f"(//div[contains(@class,'grid-container')]/descendant::div[contains(@class,'style__container')])[{self.first_page_med}]"), ], "playwright_include_page": True } headers={"accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", "accept-encoding":"gzip, deflate, br", "accept-language":"en-US,en;q=0.9,de;q=0.8", "user-agent":UserAgent().chrome} yield scrapy.Request(url, meta=meta, errback=self.close_page, callback=self.parse, method='GET', headers=headers)
想请教一下各位,我哪里写错了吗?或者有没有其他更靠谱的方法能让scrapy-playwright强制加载网页的桌面版本?
备注:内容来源于stack exchange,提问作者Ayush Rathore
相关产品推荐
相关产品推荐

