zoukankan      html  css  js  c++  java
  • 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文档可以发现,这是不难,几乎每一句里面我都标有注意事项。

    执行:


  • 相关阅读:
    【郑轻邀请赛 G】密室逃脱
    【郑轻邀请赛 C】DOBRI
    【郑轻邀请赛 F】 Tmk吃汤饭
    【郑轻邀请赛 I】这里是天堂!
    【郑轻邀请赛 B】base64解密
    【郑轻邀请赛 A】tmk射气球
    【郑轻邀请赛 H】 维克兹的进制转换
    解决adb command not found以及sdk环境配置
    adb shell 命令详解,android, adb logcat
    Unexpected exception 'Cannot run program ... error=2, No such file or directory' ... adb'
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4561577.html
Copyright © 2011-2022 走看看