我正在使用Scrapy從iTunes的AppStore數據庫中獲取一些數據。我從這個應用程序列表開始:http://itunes.apple.com/us/genre/mobile-software-applications/id36?mt=8Scrapy問題與iTunes的AppStore
在下面的代碼中,我使用了最簡單的正則表達式,它針對美國商店中的所有應用程序。
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.contrib.spiders import CrawlSpider, Rule
class AppStoreSpider(CrawlSpider):
domain_name = 'itunes.apple.com'
start_urls = ['http://itunes.apple.com/us/genre/mobile-software-applications/id6015?mt=8']
rules = (
Rule(SgmlLinkExtractor(allow='itunes\.apple\.com/us/app'),
'parse_app', follow=True,
),
)
def parse_app(self, response):
....
SPIDER = AppStoreSpider()
當我運行它,我收到以下:
[itunes.apple.com] DEBUG: Crawled (200) <GET http://itunes.apple.com/us/genre/mobile-software-applications/id6015?mt=8> (referer: None)
[itunes.apple.com] DEBUG: Filtered offsite request to 'itunes.apple.com': <GET http://itunes.apple.com/us/app/bloomberg/id281941097?mt=8>
正如你可以看到,它開始爬行,它說的第一頁時:「過濾異地請求爲‘itunes.apple.com’ 」。然後蜘蛛停止.. 也返回此消息:
[ScrapyHTTPPageGetter,client] /usr/lib/python2.5/cookielib.py:1577: exceptions.UserWarning: cookielib bug!
回溯(最近通話最後一個): 文件「/usr/lib/python2.5/cookielib.py」,線1575,在make_cookies parse_ns_headers(ns_hdrs),請求) 文件 「/usr/lib/python2.5/cookielib.py」,線1532,在_cookies_from_attrs_set 餅乾= self._cookie_from_cookie_tuple(TUP,請求) 文件「/ usr/lib中/ python2.5/cookielib.py「,行1451,在_cookie_from_cookie_tuple 如果版本不是None:version = int(version) ValueError:無效文字爲int()與基地10:'」1「'
我對其他網站使用了相同的腳本,我沒有這個問題。
有什麼建議嗎?
的使用
CustomCookieJar
爲了儘可能的異地請求進入,嘗試添加該屬性到你的蜘蛛:'allowed_domains = ['apple.com']' – 2012-03-21 08:54:31