python之网络爬虫

简介:

一、演绎自已的北爱 


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


二、爬虫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

wKiom1Re1DjxFLWEAAI4xhSpEeU805.jpg

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

wKioL1Re1WrieaAHAAJOq58aESc130.jpg

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

wKiom1Re1W-xRcNPAAEzpyPjmyo284.jpg

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

wKioL1Re1q7AU3EwAANbsDDzi1k438.jpg

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、图片展示(部分图片)

wKioL1Re2ICiL6AQAAhVHpRxlWc887.jpg

wKiom1Re2BvxeUXWAAhjd5UBBfo108.jpg

5、查看下载的图片数量

wKioL1Re2QvDnZb3AAIXXHul8HU186.jpgwKiom1Re2MrAMoPXAAtfpHgkZHU553.jpg


二、爬虫2

1、首先来分析url

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

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

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

wKiom1Re2xzwiidxAAZjxM8KAOM147.jpg

wKioL1Re24aQ2iNbAAd97-WqAm4390.jpg

wKiom1Re2yGwofzrAAeL33Kq3ao239.jpg

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、下载文章后的截图

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

wKiom1Re3XzBVDbjAAlH2M5t-kI943.jpg












     本文转自zys467754239 51CTO博客,原文链接:http://blog.51cto.com/467754239/1574528,如需转载请自行联系原作者











相关文章
|
19天前
|
数据采集 JSON API
深入解析:使用 Python 爬虫获取淘宝店铺所有商品接口
本文介绍如何使用Python结合淘宝开放平台API获取指定店铺所有商品数据。首先需注册淘宝开放平台账号、创建应用并获取API密钥,申请接口权限。接着,通过构建请求、生成签名、调用接口(如`taobao.items.search`和`taobao.item.get`)及处理响应,实现数据抓取。代码示例展示了分页处理和错误处理方法,并强调了调用频率限制、数据安全等注意事项。此技能对开发者和数据分析师极具价值。
|
3月前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
462 55
|
2月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
250 5
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
20天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
害虫识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了12种常见的害虫种类数据集【"蚂蚁(ants)", "蜜蜂(bees)", "甲虫(beetle)", "毛虫(catterpillar)", "蚯蚓(earthworms)", "蜚蠊(earwig)", "蚱蜢(grasshopper)", "飞蛾(moth)", "鼻涕虫(slug)", "蜗牛(snail)", "黄蜂(wasp)", "象鼻虫(weevil)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Djan
61 1
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
2天前
|
数据采集 JavaScript Python
如何根据目标网站调整Python爬虫的延迟时间?
如何根据目标网站调整Python爬虫的延迟时间?
|
1天前
|
数据采集 监控 Python
Python爬虫异常处理:自动跳过无效URL
Python爬虫异常处理:自动跳过无效URL
Python爬虫异常处理:自动跳过无效URL
|
14天前
|
数据采集 XML JavaScript
Python爬虫:从人民网提取视频链接的完整指南
Python爬虫:从人民网提取视频链接的完整指南
|
1月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
114 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
20天前
|
数据采集 XML 存储
Python爬虫实战:一键采集电商数据,掌握市场动态!
这个爬虫还挺实用,不光能爬电商数据,改改解析规则,啥数据都能爬。写爬虫最重要的是要有耐心,遇到问题别着急,慢慢调试就成。代码写好了,运行起来那叫一个爽,分分钟几千条数据到手。
|
19天前
|
数据采集 Web App开发 API
B站高清视频爬取:Python爬虫技术详解
B站高清视频爬取:Python爬虫技术详解