Пагинация с помощью scrapy
Я пытаюсь обойти этот веб-сайт: http://www.aido.com/eshop/cl_2-c_189-p_185/stationery/pens.html
Я могу получить все продукты на этой странице, но как мне оформить запрос на ссылку "Просмотреть больше" внизу страницы?
мой код до сих пор:
rules = (
Rule(SgmlLinkExtractor(restrict_xpaths='//li[@class="normalLeft"]/div/a',unique=True)),
Rule(SgmlLinkExtractor(restrict_xpaths='//div[@id="topParentChilds"]/div/div[@class="clm2"]/a',unique=True)),
Rule(SgmlLinkExtractor(restrict_xpaths='//p[@class="proHead"]/a',unique=True)),
Rule(SgmlLinkExtractor(allow=('http://[^/]+/[^/]+/[^/]+/[^/]+$', ), deny=('/about-us/about-us/contact-us', './music.html', ) ,unique=True),callback='parse_item'),
)
помочь?
1 ответов
прежде всего, вы должны взглянуть на этот поток о том, как бороться с выскабливанием динамически загруженного содержимого ajax: можно ли использовать scrapy для очистки динамического контента с веб-сайтов, использующих AJAX?
Итак, нажав на кнопку "Просмотреть больше", запускается запрос XHR:
http://www.aido.com/eshop/faces/tiles/category.jsp?q=&categoryID=189&catalogueID=2&parentCategoryID=185&viewType=grid&bnm=&atmSize=&format=&gender=&ageRange=&actor=&director=&author=®ion=&compProductType=&compOperatingSystem=&compScreenSize=&compCpuSpeed=&compRam=&compGraphicProcessor=&compDedicatedGraphicMemory=&mobProductType=&mobOperatingSystem=&mobCameraMegapixels=&mobScreenSize=&mobProcessor=&mobRam=&mobInternalStorage=&elecProductType=&elecFeature=&elecPlaybackFormat=&elecOutput=&elecPlatform=&elecMegaPixels=&elecOpticalZoom=&elecCapacity=&elecDisplaySize=&narrowage=&color=&prc=&k1=&k2=&k3=&k4=&k5=&k6=&k7=&k8=&k9=&k10=&k11=&k12=&startPrize=&endPrize=&newArrival=&entityType=&entityId=&brandId=&brandCmsFlag=&boutiqueID=&nmt=&disc=&rat=&cts=empty&isBoutiqueSoldOut=undefined&sort=12&isAjax=true&hstart=24&targetDIV=searchResultDisplay
возвращает text/html
из следующих 24 пунктов. Примечание этот hstart=24
параметр: первый раз, когда вы нажимаете "просмотреть больше", он равен 24, второй раз - 48 и т. д..это должно быть твое спасатель.
Теперь вы должны имитировать эти запросы в своем spider. Рекомендуемый способ сделать это, чтобы инстанцировать
надеюсь, что это поможет.