一、演绎自已的北爱
踏上北漂的航班,开始演奏了我自已的北京爱情故事
二、爬虫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之网络爬虫的更多相关文章
-
读书笔记汇总 --- 用Python写网络爬虫
本系列记录并分享:学习利用Python写网络爬虫的过程. 书目信息 Link 书名: 用Python写网络爬虫 作者: [澳]理查德 劳森(Richard Lawson) 原版名称: web scra ...
-
Python即时网络爬虫项目启动说明
作为酷爱编程的老程序员,实在按耐不下这个冲动,Python真的是太火了,不断撩拨我的心. 我是对Python存有戒备之心的,想当年我基于Drupal做的系统,使用php语言,当语言升级了,推翻了老版本 ...
-
Python即时网络爬虫项目: 内容提取器的定义(Python2.7版本)
1. 项目背景 在Python即时网络爬虫项目启动说明中我们讨论一个数字:程序员浪费在调测内容提取规则上的时间太多了(见上图),从而我们发起了这个项目,把程序员从繁琐的调测规则中解放出来,投入到更高端 ...
-
Python即时网络爬虫项目: 内容提取器的定义
1. 项目背景 在python 即时网络爬虫项目启动说明中我们讨论一个数字:程序员浪费在调测内容提取规则上的时间,从而我们发起了这个项目,把程序员从繁琐的调测规则中解放出来,投入到更高端的数据处理工作 ...
-
Python即时网络爬虫:API说明
API说明——下载gsExtractor内容提取器 1,接口名称 下载内容提取器 2,接口说明 如果您想编写一个网络爬虫程序,您会发现大部分时间耗费在调测网页内容提取规则上,不讲正则表达式的语法如何怪 ...
-
Python学习网络爬虫--转
原文地址:https://github.com/lining0806/PythonSpiderNotes Python学习网络爬虫主要分3个大的版块:抓取,分析,存储 另外,比较常用的爬虫框架Scra ...
-
Python 3网络爬虫开发实战》中文PDF+源代码+书籍软件包
Python 3网络爬虫开发实战>中文PDF+源代码+书籍软件包 下载:正在上传请稍后... 本书书籍软件包为本人原创,在这个时间就是金钱的时代,有些软件下起来是很麻烦的,真的可以为你们节省很多 ...
-
Python 3网络爬虫开发实战中文 书籍软件包(原创)
Python 3网络爬虫开发实战中文 书籍软件包(原创) 本书书籍软件包为本人原创,想学爬虫的朋友你们的福利来了.软件包包含了该书籍所需的所有软件. 因为软件导致这个文件比较大,所以百度网盘没有加速的 ...
-
Python 3网络爬虫开发实战中文PDF+源代码+书籍软件包(免费赠送)+崔庆才
Python 3网络爬虫开发实战中文PDF+源代码+书籍软件包+崔庆才 下载: 链接:https://pan.baidu.com/s/1H-VrvrT7wE9-CW2Dy2p0qA 提取码:35go ...
-
《Python 3网络爬虫开发实战中文》超清PDF+源代码+书籍软件包
<Python 3网络爬虫开发实战中文>PDF+源代码+书籍软件包 下载: 链接:https://pan.baidu.com/s/18yqCr7i9x_vTazuMPzL23Q 提取码:i ...
随机推荐
-
HDU4288 Coder(线段树)
注意添加到集合中的数是升序的,先将数据读入,再离散化. sum[rt][i]表示此节点的区域位置对5取模为i的数的和,删除一个数则右边的数循环左移一位,添加一个数则右边数循环右移一位,相当于循环左移4 ...
-
leetcode_438_Find All Anagrams in a String_哈希表_java实现
题目: Given a string s and a non-empty string p, find all the start indices of p's anagrams in s. Stri ...
-
【CSS3】CSS3 滤镜实现
作者:^_^肥仔John 来源:CSS3魔法堂:CSS3滤镜及Canvas.SVG和IE滤镜替代方案详解 IE特有的滤镜常常作为CSS3各种新特性的降级处理补充,而Adobe转向HTML5后 ...
-
【HDOJ】4932 Miaomiao&#39;s Geometry
递归检测.因为dis数组开的不够大,各种wa.写了个数据发生器,果断发现错误,改完就过了. #include <cstdio> #include <cstring> #incl ...
-
[Mugeda HTML5技术教程之17] 理解Mugeda访问统计结果
1. 功能简介 Mugeda提供动画统计功能,使得动画制作者可以直观的了解动画的浏览情况,包括浏览量,参与度,以及观看者的分布情况. 目前统计功能主要展示动画内容和广告工程的统计数据.在动画被发布或导 ...
-
Slim Span(Kruskal)
题目链接:http://poj.org/problem?id=3522 Slim Span Time Limit: 5000MS Memory Limit: 65536K Total Subm ...
-
《C++ Primer》学习笔记:向vector对象添加元素蕴含的编程假定
练习<C++ Primer>中的3.14节时,当敲入: #include <iostream> #include <string> using namespace ...
-
JavaScript(三、DOM文档对象模型)
一.什么是DOM DOM 是 Document Object Model(文档对象模型)的缩写. DOM 是 W3C(万维网联盟)的标准. DOM 定义了访问 HTML 和 XML 文档的标准: &q ...
-
temp 和 tmp 文件
TMP和TEMP文件是各种软件或系统产生的临时文件,也就是常说的垃圾文件.Windows产生的临时文件,本质上和虚拟内存没什么两样,只不过临时文件比虚拟内存更具有针对性,单独为某个程序服务而已.而它的 ...
-
JSP隐含对象
1.out隐含对象 (输出对象) 直接用于在JSP页面输出内容 javax.servlet.jsp.JspWriter(抽象类) 继承自java.io.Writer JSP中的out对象最终被转化成s ...