我正在使用 Scrapy 从 iTunes 的 AppStore 数据库中获取一些数据。我从这个应用程序列表开始:http: //itunes.apple.com/us/genre/mobile-software-applications/id36 ?mt=8
在以下代码中,我使用了针对美国商店中所有应用程序的最简单的正则表达式。
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 cookie = self._cookie_from_cookie_tuple(tup, request) 文件 "/usr/lib/python2.5/cookielib.py",第 1451 行,在 _cookie_from_cookie_tuple 中,如果版本不是无:version = int(version) ValueError: int() 以 10 为底的无效文字:'"1"'
我在其他网站上使用了相同的脚本,我没有这个问题。
有什么建议吗?