美文网首页Python
爬虫框架pyspider踩坑总结,不定时更新...

爬虫框架pyspider踩坑总结,不定时更新...

作者: 火柴菌 | 来源:发表于2018-11-29 18:33 被阅读60次

self.crawl()方法只抓取一次,之后多次run还是不抓取

解决方法:

1,添加@config(age=1)到callback函数: age为1代表1s内如果请求相同的url,则忽略抓取;
2,为抓取的url添加: #随机字符(这里使用uuid库生成随机ID);
为每个url添加#随机字符可以保证每条请求url的地址都不一样,#随机字符 不影响原url的抓取;
3,添加itag标签,itag也需要随机生成,保证每个itag都跟上一个不一样;

class Handler(BaseHandler):
    crawl_config = {
    }

    @every(minutes=60)
    def on_start(self):
        random_str = uuid.uuid4()
        itag = 'xxx' # 每次请求的itag都要跟上一个不一样
        url = 'https://www.baidu.com#{}'.formate(random_str)
        self.crawl(
                    url,
                    headers=headers,
                    callback=self.parse_data,
                    save={
                        'headers': headers,
                        'itag': itag,
                    }
                )

    @config(age=1)
    def parse_data(self, response):
        pass

相关文章

网友评论

    本文标题:爬虫框架pyspider踩坑总结,不定时更新...

    本文链接:https://www.haomeiwen.com/subject/ssofcqtx.html