一、演绎自已的北爱

踏上北漂的航班,开始演奏了我自已的北京爱情故事

二、爬虫1

1、网络爬虫的思路

首先:指定一个url,然后打开这个url地址,读其中的内容。

其次:从读取的内容中过滤关键字;这一步是关键,可以通过查看源代码的方式获取。

最后:下载获取的html的url地址,或者图片的url地址保存到本地

2、针对指定的url来网络爬虫

分析:

第一步:大约共有4300个下一页。

第二步:一个页面上有10个个人头像

第三步:一个头像内大约有100张左右的个人图片

指定的淘宝mm的url为:http://mm.taobao.com/json/request_top_list.htm?type=0&page=1

这个页面默认是没有下一页按钮的,我们可以通过修改其url地址来进行查看下一个页面

最后一页的url地址和页面展示如下图所示:

点击任意一个头像来进入个人的主页,如下图

3、定制的脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#!/usr/bin/env python
#coding:utf-8
#Author:Allentuns
#Email:zhengyansheng@hytyi.com
 
 
import urllib
import os
import sys
import time
 
ahref = '<a href="'
ahrefs = '<a href="h'
ahtml = ".htm"
atitle = "<img style"
ajpg = ".jpg"
btitle = '<img src="'
 
page = 0
while page < 4300:    #这个地方可以修改;最大值为4300,我测试的时候写的是3.
        mmurl = "http://mm.taobao.com/json/request_top_list.htm?type=0&page=%d" %(page)
        content = urllib.urlopen(mmurl).read()
 
        href = content.find(ahref)
        html = content.find(ahtml)
        url = content[href + len(ahref) : html + len(ahtml)]
        print url
        imgtitle = content.find(btitle,html)
        imgjpg = content.find(ajpg,imgtitle)
        littleimgurl = content[imgtitle + len(btitle): imgjpg + len(ajpg)]
        print littleimgurl
 
        urllib.urlretrieve(littleimgurl,"/www/src/temp/image/taobaomm/allentuns.jpg")
 
        s = 0
        while s < 18:
                href = content.find(ahrefs,html)
                html = content.find(ahtml,href)
                url = content[href + len(ahref): html + len(ajpg)]
                print s,url
 
                imgtitle = content.find(btitle,html)
                imgjpg = content.find(ajpg,imgtitle)
                littleimgurl = content[imgtitle : imgjpg + len(ajpg)]
                littlesrc = littleimgurl.find("src")
                tureimgurl = littleimgurl[littlesrc + 5:]
                print s,tureimgurl
 
 
                if url.find("photo") == -1:
                        content01 = urllib.urlopen(url).read()
                        imgtitle = content01.find(atitle)
                        imgjpg = content01.find(ajpg,imgtitle)
                        littleimgurl = content01[imgtitle : imgjpg + len(ajpg)]
                        littlesrc = littleimgurl.find("src")
                        tureimgurl = littleimgurl[littlesrc + 5:]
                        print tureimgurl
 
                        imgcount = content01.count(atitle)
                        i = 20
                        try:
                                while i < imgcount:
                                        content01 = urllib.urlopen(url).read()
                                        imgtitle = content01.find(atitle,imgjpg)
                                        imgjpg = content01.find(ajpg,imgtitle)
                                        littleimgurl = content01[imgtitle : imgjpg + len(ajpg)]
                                        littlesrc = littleimgurl.find("src")
                                        tureimgurl = littleimgurl[littlesrc + 5:]
                                        print i,tureimgurl
                                        time.sleep(1)
                                        if tureimgurl.count("<") == 0:
                                                imgname = tureimgurl[tureimgurl.index("T"):]
                                                urllib.urlretrieve(tureimgurl,"/www/src/temp/image/taobaomm/%s-%s" %(page,imgname))
                                        else:
                                                pass
                                        i += 1
                        except IOError:
                                print '/nWhy did you do an EOF on me?'
                                break
                        except:
                                print '/nSome error/exception occurred.'
 
                s += 1
        else:
                print "---------------{< 20;1 page hava 10 htm and pic  }-------------------------}"
        page = page + 1
        print "****************%s page*******************************" %(page)
else:
        print "Download Finshed."

4、图片展示(部分图片)

5、查看下载的图片数量

二、爬虫2

1、首先来分析url

第一步:总共有7个页面;

第二步:每个页面有20篇文章

第三步:查看后总共有317篇文章

2、python脚本

脚本的功能:通过给定的url来将这片博客里面的所有文章下载到本地

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/usr/bin/env python
#coding: utf-8
 
import urllib
import time
 
list00 = []
i = j = 0
page = 1
 
while page < 8:
        str = "http://blog.sina.com.cn/s/articlelist_1191258123_0_%d.html" %(page)
        content = urllib.urlopen(str).read()
 
        title = content.find(r"<a title")
        href  = content.find(r"href=",title)
        html  = content.find(r".html",href)
        url = content[href + 6:html + 5]
        urlfilename = url[-26:]
        list00.append(url)
        print i,  url
 
        while title != -1 and href != -1 and html != -1 and i < 350:
                title = content.find(r"<a title",html)
                href  = content.find(r"href=",title)
                html  = content.find(r".html",href)
                url = content[href + 6:html + 5]
                urlfilename = url[-26:]
                list00.append(url)
                i = i + 1
                print i,  url
        else:
                print "Link address Finshed."
 
        print "This is %s page" %(page)
        page = page + 1
else:
        print "spage=",list00[50]
        print list00[:51]
        print list00.count("")
        print "All links address Finshed."
 
x = list00.count('')
a = 0
while a < x:
        y1 = list00.index('')
        list00.pop(y1)
        print a
        a = a + 1
 
print list00.count('')
listcount = len(list00)
 
 
while j < listcount:
        content = urllib.urlopen(list00[j]).read()
        open(r"/tmp/hanhan/"+list00[j][-26:],'a+').write(content)
        print "%2s is finshed." %(j)
        j = j + 1
        #time.sleep(1)
else:
        print "Write to file End."

3、下载文章后的截图

4、从linux下载到windows本地,然后打开查看;如下截图

python之网络爬虫的更多相关文章

  1. 读书笔记汇总 --- 用Python写网络爬虫

    本系列记录并分享:学习利用Python写网络爬虫的过程. 书目信息 Link 书名: 用Python写网络爬虫 作者: [澳]理查德 劳森(Richard Lawson) 原版名称: web scra ...

  2. Python即时网络爬虫项目启动说明

    作为酷爱编程的老程序员,实在按耐不下这个冲动,Python真的是太火了,不断撩拨我的心. 我是对Python存有戒备之心的,想当年我基于Drupal做的系统,使用php语言,当语言升级了,推翻了老版本 ...

  3. Python即时网络爬虫项目: 内容提取器的定义(Python2.7版本)

    1. 项目背景 在Python即时网络爬虫项目启动说明中我们讨论一个数字:程序员浪费在调测内容提取规则上的时间太多了(见上图),从而我们发起了这个项目,把程序员从繁琐的调测规则中解放出来,投入到更高端 ...

  4. Python即时网络爬虫项目: 内容提取器的定义

    1. 项目背景 在python 即时网络爬虫项目启动说明中我们讨论一个数字:程序员浪费在调测内容提取规则上的时间,从而我们发起了这个项目,把程序员从繁琐的调测规则中解放出来,投入到更高端的数据处理工作 ...

  5. Python即时网络爬虫:API说明

    API说明——下载gsExtractor内容提取器 1,接口名称 下载内容提取器 2,接口说明 如果您想编写一个网络爬虫程序,您会发现大部分时间耗费在调测网页内容提取规则上,不讲正则表达式的语法如何怪 ...

  6. Python学习网络爬虫--转

    原文地址:https://github.com/lining0806/PythonSpiderNotes Python学习网络爬虫主要分3个大的版块:抓取,分析,存储 另外,比较常用的爬虫框架Scra ...

  7. Python 3网络爬虫开发实战》中文PDF+源代码+书籍软件包

    Python 3网络爬虫开发实战>中文PDF+源代码+书籍软件包 下载:正在上传请稍后... 本书书籍软件包为本人原创,在这个时间就是金钱的时代,有些软件下起来是很麻烦的,真的可以为你们节省很多 ...

  8. Python 3网络爬虫开发实战中文 书籍软件包(原创)

    Python 3网络爬虫开发实战中文 书籍软件包(原创) 本书书籍软件包为本人原创,想学爬虫的朋友你们的福利来了.软件包包含了该书籍所需的所有软件. 因为软件导致这个文件比较大,所以百度网盘没有加速的 ...

  9. Python 3网络爬虫开发实战中文PDF+源代码+书籍软件包(免费赠送)+崔庆才

    Python 3网络爬虫开发实战中文PDF+源代码+书籍软件包+崔庆才 下载: 链接:https://pan.baidu.com/s/1H-VrvrT7wE9-CW2Dy2p0qA 提取码:35go ...

  10. 《Python 3网络爬虫开发实战中文》超清PDF+源代码+书籍软件包

    <Python 3网络爬虫开发实战中文>PDF+源代码+书籍软件包 下载: 链接:https://pan.baidu.com/s/18yqCr7i9x_vTazuMPzL23Q 提取码:i ...

随机推荐

  1. [转] java.lang.IllegalArgumentException: Document base D:\apache-tomcat-7.0.47\webapps\XXX错误

    启动服务器,报上述错误,是因为在服务器中(如tomcat)删除了某项目,单残留的配置文件没删除造成的.解决办法是到服务器中找到conf\Catalina\localhost下找到错误信息中对应的配置文 ...

  2. ArrayList/Vector的原理、线程安全和迭代Fail-Fast

    疑问 * ArrayList是非线程非安全的,具体是指什么?具体会产生什么问题?* ArrayList的内部原理是什么?为什么可以动态扩容?* Vector是线程安全的,具体是如何实现的?为什么不再推 ...

  3. windows地址转发

    netsh interface portproxy add v4tov4 listenport=8080 connectaddress=192.168.8.108 connectport=8080 把 ...

  4. 那些在学习iOS开发前就应该知道的事(part 1)

    英文原文:Things I wish I had known before starting iOS development—Part 1 http://www.cocoachina.com/ios/ ...

  5. 3D碰撞检测

    为了确保任何区域的空间不被多于1个物体占用,我们需要基于物体间的空间信息来做碰撞检测. 碰撞检测中重要的事情是有大量的测试,因此需要理由GPU资源. 例如:如果我们有n个物体,一个物体将会碰撞n-1个 ...

  6. 【组合数学+动态规划】在如下8*6的矩阵中,请计算从A移动到B一共有____种走法。要求每次只能向上或向右移动一格,并且不能经过P。

    在如下8*6的矩阵中,请计算从A移动到B一共有__种走法.要求每次只能向上或向右移动一格,并且不能经过P. A:456 B:492 C:568 D:626 E:680 F:702 解析: 8*6的矩阵 ...

  7. Python将文本生成二维码

    #coding:utf-8 ''' Python生成二维码 v1.0 主要将文本生成二维码图片 测试一:将文本生成白底黑字的二维码图片 测试二:将文本生成带logo的二维码图片 ''' __autho ...

  8. 利用Aspose文档转图片

    通过使用Aspose您可以轻松的将您的文档转换成真正的图片格式,最好的保证您的内容将实际可见,与其他格式相比,它并不存在查看工具的安装问题. 准备工作: 1:下载Aspose组件包:http://do ...

  9. ECshop设置301最快捷最简单的方法

    ECshop设置301最快捷最简单的方法 在 init.php中加入以下代码 if (strtolower($_SERVER['SERVER_NAME'])!='www.fz1688.com') { ...

  10. FEC难:

     飞雨(314698641)  12:03:16 有人研究fec吗把信源编码好信道编码区别开来 ? 杭州桓泽(84894922)  12:52:54fec实际是一种概括性技术可以从信源的方面做fec就 ...