美文网首页
python学习之旅-第二周week2-3

python学习之旅-第二周week2-3

作者: 张旭东0514 | 来源:发表于2016-05-26 13:39 被阅读0次

    week2-3作业
    学习python的第二周 5.25号完成练习week2-3在爬取58手机号卖家信息中加入断点续传功能
    要求如下图所示:

    Paste_Image.png

    想法:通过数据库新增一个‘状态字段’来表示这个链接是否有爬取过,初始设定为‘未爬取’,每次爬取后改变次字段状态为‘已爬取’

    Paste_Image.png

    代码部分:

    def update_message(url):
        for message in phone_message_state.find({'连接':url}):
            data ={
                '_id':message['_id'],
                '标题':message['标题'],
                '连接':message['连接'],
                '状态':'已爬取',
            }
            phone_message_state.save(data)
        return
    

    每当从链接中成功爬取一个卖家信息时,改变链接表中的状态值,在查询时根据这个字段做判读查询

    for message in phone_message_state.find({'状态':'未爬取'}):
            print('爬取进度=' + str((phone_message_state.count({'状态': '已爬取'}) / phone_message_state.count({'状态': '未爬取'}))*100)+'%')
            #if判断排除几个选好网的推荐
            if  'http://bj.58.com/shoujihao/' in message['连接']:
                #print(message['连接'])
                get_phone_message(message['连接'])
            else:
                update_message(message['连接'])
    

    运行效果如下:

    Paste_Image.png

    程序可随时停止并随时开启,保障了数据的完成性和不重复性
    总结:
    --通过练习掌握了一些mongodb的保存等功能修改
    --第一次对表结构进行了优化

    相关文章

      网友评论

          本文标题:python学习之旅-第二周week2-3

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