猿问

pyspider为什么能实现url爬取多条数据吗?

据说on_message可以,但我测试了还是不行,有什么方法能实现吗?

def detail_page(self, response):
    results = json.loads(response.text)    for result in results:
        date = result['date']
        number = response.url[6:]        self.send_message(self.project_name, {            "number": number,            "date":date,
         }, url="%s#%s" % (response.url, date)) 
def on_message(self, project, msg):
    print msg    return msg


慕雪6442864
浏览 818回答 1
1回答

红糖糍粑

detail_page可以返回一个列表,然后在on_result处理的时候,当列表处理就行。你这个代码没什么问题,问题没有出在这里。还有测试的时候并不会调用on_message,测试的send_message发送的消息给了左侧的message里面。只有项目运行的时候才会调用on_message.我在刚接触的时候没有注意url去重的问题,导致没有结果。如果要抓取相同的url,需要修改url比如加入锚点(#tag),这样才会重新抓取。希望后面学习的人注意这个问题。你的也有可能是这个原因
随时随地看视频慕课网APP

相关分类

Python
我要回答