现在我想要刮掉这个web page中所有项目(iphone)的图片。首先,我提取图像的所有链接,然后逐个向src发送请求,并将它们下载到文件夹'/phone/‘。下面是我的代码:
from pyspider.libs.base_handler import *
class Handler(BaseHandler):
crawl_config = {
}
@every(minutes=24 * 60)
def on_start(self):
print 'hi'
self.crawl('https://s.taobao.com/search?q=iphone&imgfile=&ie=utf8', callback=self.index_page, fetch_type='js')
#@config(age=10 * 24 * 60 * 60)
def index_page(self, response):
items = response.doc('.item').items()
for item in items:
imgurl = item('.J_ItemPic img').attr('.src')
if imgurl:
filename = item('.J_ItemPic.img').attr('.id')
self.crawl(imgurl, callback=self.scrape_photo, save={'filename': filename})
def save_photo(self, content, filename):
with open('phone/'+filename, 'wb') as f:
f.write(content)
def scrape_photo(self, response):
content = response.content
filename = response.save['filename']+'.jpg'
self.save_photo(content, filename)这是非常直观和简单的。但是当我运行代码时,什么也没有发生,我只是在终端中得到了以下日志消息:
[I 160602 18:57:42 scheduler:664] restart task sk:on_start data:,on_start
[I 160602 18:57:42 scheduler:771] select sk:on_start data:,on_start
[I 160602 18:57:42 tornado_fetcher:178] [200] sk:on_start data:,on_start 0s
[I 160602 18:57:42 processor:199] process sk:on_start data:,on_start -> [200] len:8 -> result:None fol:1 msg:0 err:None
[I 160602 18:57:42 scheduler:712] task done sk:on_start data:,on_start我对这个问题几乎要疯了。您能告诉我问题出在哪里吗?我该如何解决它?提前感谢!
发布于 2016-06-03 02:16:29
你以前有没有爬过“https://s.taobao.com/search?q=iphone&imgfile=&ie=utf8”这个链接?
默认情况下,pyspider会丢弃抓取的链接(你评论的@config(age=10 * 24 * 60 * 60)意味着永远不会重新抓取)
如果您想重新启动hold项目,http://docs.pyspider.org/en/latest/apis/self.crawl/#itag将提供帮助。
https://stackoverflow.com/questions/37590362
复制相似问题