Как использовать scrapy для сканирования данных с нескольких страниц, которые реализованы с помощью javascript
Я хочу использовать scrapy для сканирования данных с веб-страниц, но различие между разными страницами не видно по URL. Например:
http://epgd.biosino.org/EPGD/search/textsearch.jsp?textquery=man&submit=Feeling+Lucky
URL, как указано выше, является первой страницей, с которой я хочу сканировать данные, и с нее легко получить данные.
Вот мой код:
__author__ = 'Rabbit'
from scrapy.spiders import Spider
from scrapy.selector import Selector
from scrapy_Data.items import EPGD
class EPGD_spider(Spider):
name = "EPGD"
allowed_domains = ["epgd.biosino.org"]
stmp = []
term = "man"
url_base = "http://epgd.biosino.org/EPGD/search/textsearch.jsp?textquery=man&submit=Feeling+Lucky"
start_urls = stmp
def parse(self, response):
sel = Selector(response)
sites = sel.xpath('//tr[@class="odd"]|//tr[@class="even"]')
for site in sites:
item = EPGD()
item['genID'] = map(unicode.strip, site.xpath('td[1]/a/text()').extract())
item['taxID'] = map(unicode.strip, site.xpath('td[2]/a/text()').extract())
item['familyID'] = map(unicode.strip, site.xpath('td[3]/a/text()').extract())
item['chromosome'] = map(unicode.strip, site.xpath('td[4]/text()').extract())
item['symbol'] = map(unicode.strip, site.xpath('td[5]/text()').extract())
item['description'] = map(unicode.strip, site.xpath('td[6]/text()').extract())
yield item
Но проблема возникает, если я хочу получить данные со страницы 2. Я нажимаю на следующую страницу, и URL второй страницы выглядит следующим образом:
http://epgd.biosino.org/EPGD/search/textsearch.jsp?currentIndex=20
Как видите, у него нет ключевого слова в URL, поэтому я не знаю, как получить данные с других страниц. Может быть, я должен использовать куки, но я не знаю, как поступить с этой ситуацией, поэтому кто-нибудь может мне помочь.
Большое спасибо!