【发布时间】:2016-07-05 03:20:35
【问题描述】:
我想用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 中没有关键字,所以我不知道如何从其他页面获取数据。也许我应该使用 cookie,但我不知道如何处理这种情况,所以任何人都可以帮助我。
非常感谢!
【问题讨论】:
-
所以我没有澄清我的问题吗?如果有人想帮助我,但不知道我在问什么,您可以在此处添加评论。