я пытаюсь лом результата следующей страницы:Scrapy Искатель не может сканировать данные из нескольких страниц
http://www.peekyou.com/work/autodesk/page=1
со страницей = 1,2,3,4 ... так далее, как в результаты. Поэтому я получаю файл php для запуска поискового робота, который запускает его для разных номеров страниц. Код (для одной страницы) выглядит следующим образом:
`import sys
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import HtmlXPathSelector
from scrapy.item import Item
from scrapy.http import Request
#from scrapy.crawler import CrawlerProcess
class DmozSpider(BaseSpider):
name = "peekyou_crawler"
start_urls = ["http://www.peekyou.com/work/autodesk/page=1"];
def parse(self, response):
hxs = HtmlXPathSelector(response)
discovery = hxs.select('//div[@class="nextPage"]/table/tr[2]/td/a[contains(@title,"Next")]')
print len(discovery)
print "Starting the actual file"
items = hxs.select('//div[@class="resultCell"]')
count = 0
for newsItem in items:
print newsItem
url=newsItem.select('h2/a/@href').extract()
name = newsItem.select('h2/a/span/text()').extract()
count = count + 1
print count
print url[0]
print name[0]
print "\n"
` страницы результатов Autodesk имеет 18 страниц. Когда я запускаю код для обхода всех страниц, искатель получает данные только со страницы 2, а не на всех страницах. Аналогичным образом, я изменил название компании, чтобы быть чем-то другим. Опять же, он обрывает некоторые страницы и не отдыхает. Я получаю http-ответ 200 на каждой странице. Кроме того, даже я продолжаю запускать его снова, он продолжает ломать одни и те же страницы, но не всегда. Любая идея о том, что может быть ошибкой в моем подходе или что-то мне не хватает?
Заранее спасибо.
Я попытался посмотреть исходный код этих страниц и посмотреть, как результаты загружаются позже и продолжают показывать «загрузка». Подобное происходит, когда мы пытаемся увидеть исходный код. Он показывает «загрузочный малый» и загружается только после некоторого времени. Таким образом, мой искатель не смог бы найти какие-либо данные для сканирования по времени, когда он начнет очищать. Любое решение? – Aryabhatt
Если результаты будут загружены позже, для загрузки этого файла должен быть некоторый javascript с помощью ajax - вы можете искать слова «ajax», «post», «get» или «http: //» в javascript для поиска URL-адресов загруженных данных.Я также использую firefox + firebug, чтобы узнать, какие URL-адреса вызывается браузером - он даже быстрее, чем поиск в javascript. Если у вас есть URL-адрес, вы можете проверить его и использовать для получения данных напрямую. – furas