• 团队-爬虫豆瓣top250项目-项目进度


    正则表达式在线检测工具:http://tool.oschina.net/regex/

    进程:

    1.源代码HTML

      #将url转换为HTML源码
    def getHtml(url):
        try:
            page = urllib.request.urlopen(url)
            html = page.read()
        except:
            print("failed to geturl")
            return ''
        else:
            return html

    2.爬取书名

      #通过正则表达式获取该网页下每本书的title(换行符没去掉)
    def getTitle(html):
        nameList = re.findall(r'<a href="https.*?".*?target="_blank">(.*?)</a>',html,re.S)
        newNameList = [];
        global topnum
        for index,item in enumerate(nameList):
            if item.find("img") == -1:#通过检测img,只保留中文标题
                #item.replace(' ','')
                #item.strip()
                #item.splitlines()
                #re.sub(' | ', '', item)
                if topnum%26 !=0:
                    #newNameList.append("Top " + str(topnum) + " " + item);
                    newNameList.append(item);
                topnum += 1;
        return newNameList

    3.爬取图片

      #通过正则表达式获取该网页下每本书的图片链接
    def getImg(html):
        imgList = re.findall(r'img.*?width=.*?src="(http.*?)"',html,re.S)
        newImgList = []
        for index,item in enumerate(imgList):
            if item.find("js") == -and item.find("css") == -and item.find("dale") == -and item.find("icon") == -1and item.find("png") == -1:
                newImgList.append(item);

        return newImgList;

    4.翻页

      #实现翻页,每页25个
    for page in range(0,450,25):
        url = "https://www.douban.com/doulist/1264675/?start={}".format(page)
        html = getHtml(url).decode("UTF-8");
        if html == '':
            namesUrl.extend('none');
            imgsUrl.extend('none')
            scoresUrl.extend('none')
            commentsUrl.extend('none')
            introductionsUrl.extend('none')
        else:
            namesUrl.extend(getTitle(html))
            imgsUrl.extend(getImg(html))
            scoresUrl.extend(getScore(html))
            commentsUrl.extend(getComment(html))
            introductionsUrl.extend(getDetail(html))

    暂时完成以上的模块

  • 相关阅读:
    学习记录---KMP算法-部分匹配表理解
    关于GameObject无法禁用问题
    out用法
    关于Dictionary.TryGetValue的个人理解记录
    Transform.parent和Transform.root的区别
    Queue默认容量
    关于Camera Culling Mask
    MSVCP110.DLL没有被指定在WINDOWS上运行
    typeof instanceof 之间的区别总结
    Promise 使用心得
  • 原文地址:https://www.cnblogs.com/Zlxz/p/7792538.html
Copyright © 2020-2023  润新知