• python网络爬虫进入(一)——简单的博客爬行动物


    最近。对于图形微信公众号。互联网收集和阅读一些疯狂的-depth新闻和有趣,发人深思文本注释,并选择最佳的发表论文数篇了。但看着它的感觉是一个麻烦的一人死亡。寻找一个简单的解决方案的方法,看看你是否可以把互联网上的信息自己主动收集,然后,他们使用一个统一的筛选。可惜,最近准备学习的知识网络爬虫,于是按照网上的教程要学会尝试写自己的一个小爬虫,嘻嘻,韩寒的博客是用来攀爬。


    第一个完整的代码贴上来,根据假设,朋友们需要测试。请安装python相关环境,存。再按F5执行。

    #导入urllib库,python訪问网页必须库
    import urllib
    #时间类库
    import time
    
    #定义一个URL数组用来存放捕获的URL地址。也就是须要爬的文字地址路径
    url = [''] * 50
    #定义link变量,用来记录第几个URL地址
    link = 1
    
    #循环捕获博客文件夹第一页全部的文章链接。并下载
    
    #定义con变量来存储urllib.urlopen打开韩寒博客的文件夹地址,特别注意下'+str(page)+',用来变化每一页文件夹地址的
    con = urllib.urlopen('http://blog.sina.com.cn/s/articlelist_1191258123_0_1.html').read()
    #变量title用来存储con变量中找到<a title=开头元素的位置
    title = con.find(r'<a title=')
    #变量href用来存储con变量中找到href='开头元素的位置
    href = con.find(r'href=',title)
    #变量html用来存储con变量中找到.html开头元素的位置
    html = con.find(r'.html',href)
    #存储第一个连接地址
    url[0] = con[href + 6:html + 5]
    content = urllib.urlopen(url[0]).read()
    open(r'hanhan/'+url[0][-26:],'w+').write(content)
    print '0 have downloaded',url[0]
    #循环捕获每一篇文章的地址,并存储在URL数组中
    while title != -1 and href != -1 and html != -1 and link < 50:
        #con[href + 6:html + 5]是用来取con字符串href后6位到html倒数5位之间的字符串
        url[link] = con[href + 6:html + 5]
        #打开读取每一篇文章地址。并存储在content中
        content = urllib.urlopen(url[link]).read()
        #打开hanhan这个文件夹,假设里面没有url[link][-26:]这个字符串命名的文件。便将content里的内容写入。命名为url[link][-26:]
        open(r'hanhan/'+url[link][-26:],'w+').write(content)
        print link,'have downloaded',url[link]
        title = con.find(r'<a title=',html)
        href = con.find(r'href=',title)
        html = con.find(r'.html',href)
        #自增记数
        link = link +1
    

    这个爬虫实现的功能还是非常简陋的,但作为入门我认为还是够的。它仅仅是实现了保存博客第一页文件夹全部文章的HTML文件,并没有抓取特定的内容予以保存。


    还有我认为有编程基础的人,看起来应该不是非常费力。主要的思想非常easy,就是先爬地址,然后爬一个地址就下地址相应的网页,接着保存为。

    我个人认为。这段代码还是有点邋遢。不够简洁明了。希望通过以后的学习能写出质量更高的代码。

    有些看里面涉及的方法python文档可以发现,这是不难,几乎每一句里面我都标有注意事项。

    执行:


  • 相关阅读:
    【Android】3.13 路径规划功能
    【Android】3.12 兴趣点( POI)搜索功能
    【Android】3.11 地理编码功能
    【Android】3.10 热力图功能
    【Android】3.9 覆盖物功能
    Java并发工具类之CountDownLatch
    GitHub项目加入Travis-CI的自动集成
    一种基于zookeeper的分布式队列的设计与实现
    常用的限流算法
    zookeeper客户端命令详解
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4561577.html
Copyright © 2020-2023  润新知