我在scrapy,python中使用站點地圖蜘蛛。 站點地圖似乎在網址前面帶 '//' 不尋常的格式:在scrapy中使用站點地圖蜘蛛解析位於不同網址格式的站點地圖中的網址python
<url>
<loc>//www.example.com/10/20-baby-names</loc>
</url>
<url>
<loc>//www.example.com/elizabeth/christmas</loc>
</url>
myspider.py
from scrapy.contrib.spiders import SitemapSpider
from myspider.items import *
class MySpider(SitemapSpider):
name = "myspider"
sitemap_urls = ["http://www.example.com/robots.txt"]
def parse(self, response):
item = PostItem()
item['url'] = response.url
item['title'] = response.xpath('//title/text()').extract()
return item
我收到此錯誤:
raise ValueError('Missing scheme in request url: %s' % self._url)
exceptions.ValueError: Missing scheme in request url: //www.example.com/10/20-baby-names
哪有我手動解析網址使用網站地圖蜘蛛?
不工作,'iterloc'和'SitemapSpider'是同一個模塊,並且像這樣重新定義它並不會改變任何東西。我正在研究這一點 - 一個「模擬」可能是有幫助的。 – alecxe 2014-12-04 15:30:54
你能詳細說一下嗎?如果他有一個「MySpider」實例正在運行,那麼不應該調用「MySpider」的'iterloc'方法嗎?我有一種感覺,你在引用我的想法中的多態性問題? – Aufziehvogel 2014-12-04 15:35:13
問題是'iterloc'不是'SitemapSpider'中的一個方法 - 它是類之外的一個單獨的函數,但在同一個模塊中。 – alecxe 2014-12-04 15:49:52