码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-10-15 14:59:39      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:urllib   网页   表达式   int   and   comment   mat   https   lob   

注:

正则表达式在线检测工具: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(‘\n‘,‘‘)
            #item.strip()
            #item.splitlines()
            #re.sub(‘\r|\n‘, ‘‘, 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") == -1 and item.find("css") == -1 and item.find("dale") == -1 and item.find("icon") == -1 and 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))

暂时完成以上的模块

 

遇到的问题:

1.通过观察爬取的结果,发现每一页都会多出一个内容(并不是我需要的数据,确符合正则表达式,所以通过简单的处理将其剔除掉)。这项有个小瑕疵:爬取的标题前后带着换行符,试了几种方法还是没去掉!!!

2.因为页面中符合条件的数据各式各样,所以需要将其中不是我们需要的剔除掉(判断条件有点暴力,暂时没想到更好的办法)

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

标签:urllib   网页   表达式   int   and   comment   mat   https   lob   

原文地址:http://www.cnblogs.com/z-xx/p/7670133.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!