我有一个页面
这是一个很好的例子,它可以帮助你在跑步的过程中找到正确的方向。描述@tm10;升序&fe=&pf=标识子族=10005@&start=0
向下滚动后会自动加载产品(最初只显示48个产品)。总共应该有大约630个产品。
这是我的蜘蛛代码。我总是只得到48个结果而不是630+。知道为什么它没有全部加载吗?
import scrapy
from scrapy_playwright.page import PageMethod
class PicturesSpider(scrapy.Spider):
name = 'pictures'
allowed_domains = ['www.tradeinn.com']
start_urls = ['http://www.tradeinn.com/']
def start_requests(self):
yield scrapy.Request(url='https://www.tradeinn.com/runnerinn/en/mens-shoes-trail-running-shoes/10005/s#fq=id_familia=10002&sort=v30_sum;desc@tm10;asc&fe=&pf=id_subfamilia=10005&&start=144',
meta={'playwright': True,
'playwright_include_page': True,
'playwright_page_method': [PageMethod('wait_for_selector', 'div::boton_cargar_mas.color_runnerinn'),
PageMethod("evaluate", "window.scrollBy(0, document.body.scrollHeight)")]},
callback=self.parse)
def parse(self, response):
images = response.css('div.BoxImage')
for image in images:
image_link = image.css('img::attr(src)').get()
image_description = image.css('img::attr(alt)').get()
yield {
'image_link': image_link,
'image_description': image_description
}
有什么建议我应该改变什么,以获得完整的内容?
1条答案
按热度按时间t98cgbkg1#
下面是一种方法来获得该页面上的图像-显然只有398,而不是600+ -它甚至在顶部的面包屑中指定- Trail Running Shoes(398)). Solution是基于Selenium的,欢迎您对其进行功能化,OOP,无论如何,我只给您获得图像的实际方法.
终端中的结果:
有关Selenium文档,请参见https://www.selenium.dev/documentation/