Cómo usar scrapy para rastrear datos de varias páginas implementadas por javascript
Quiero usar scrapy para rastrear datos de páginas web, pero la diferencia entre diferentes páginas no se puede ver desde la url. Por ejemplo:
http://epgd.biosino.org/EPGD/search/textsearch.jsp?textquery=man&submit=Feeling+Lucky
La URL como la anterior es la primera página desde la que quiero rastrear datos, y es fácil obtener datos de ella.
Aquí está mi código:
__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
Pero el problema surge si quiero obtener datos de la página 2.Hago clic en la página siguiente y la URL de la segunda página se ve así:
http://epgd.biosino.org/EPGD/search/textsearch.jsp?currentIndex=20
Tal como ves, no tiene una palabra clave en su URL, por lo que no sé cómo obtener datos de otras páginas. Tal vez debería usar cookies, pero no sé cómo hacer con esta situación, así que alguien puede ayudarme.
¡Muchas gracias!