python爬虫Pragmatic系列I

释放双眼,带上耳机,听听看~!

python爬虫Pragmatic系列I

说明:

我将在这个系列介绍如何利用python写一个爬虫,并用爬虫去做一些有实际意义的事情,be pragmatic.

最终目标:

抓取赶集网上担保公司的信息,分析统计后保存到excel中。

下载赶集网上每一家担保公司的信息,记录公司的名称,联系电话,服务范围等基本信息并保存到Excel中。

本次目标:

学习如何下载一个网页并进行简单的分析。

下载网页:

下载百度首页(未登录状态下)。其中的python基础知识学习可以点这里:Python入门,python的urllib学习可以点击这里:urllib中函数的用法,文件读写学习可以点击这里:python文件读写

代码:


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
1# -*-coding:UTF-8 -*-
2from urllib import urlretrieve
3
4
5def getWebPage(url):
6    '''
7    根据给定的url下载网页到本地
8    '''
9    try:
10        '''
11        urlretrieve函数会将url定位的网页下载到临时文件中
12        '''
13        revtal = urlretrieve(url)[0]
14    except IOError:
15        revtal = None
16    if revtal:#如果revtal不为空的话,说明网页下载成功了,那么我们就可以去处理它了
17        saveWebPage(revtal)
18    
19    
20def saveWebPage(webpage):
21    '''
22    将下载的网页保存到file.txt文件中
23    '''
24    f = open(webpage)#将下载的临时文件打开
25    lines = f.readlines()#将下载的网页信息保存到lines中
26    f.close()#关闭文件对象
27
28    fobj = open("file.txt",'w')#以写的方式打开file.txt,如果file.txt不存在,那么将创建一个
29    fobj.writelines(lines)#将网页信息写入file.txt中
30    fobj.close()#关闭文件对象
31
32
33if __name__ == '__main__':
34   getWebPage(url='http://www.baidu.com')
35

运行结果:

产生一个91kb大小的baidu.txt文件,文件内容为百度首页html代码。

解析网页:

解析网页需要用到
python的
re模块,即正则表达式模块。你可以点击正则表达式30分钟入门这里学习正则表达式,点击re模块函数学习正则表达式在python中的使用。

百度首页(未登录状态下)上有着“新闻”,“
hao123
”,“地图”,

“视频”,“贴吧”这样五个链接。我们设法取出这五个链接的值。

代码:


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
1# -*- coding:utf-8 -*-
2import re
3
4def getNames():
5   '''
6   取出百度首页的五个链接值
7   '''
8   f = open("baidu.txt",'r')#打开刚刚获取的百度首页文件
9   lines = f.readlines()#将文件内容读取到lines中
10  f.close()#关闭文件对象
11 
12  p = r'\bclass="mnav">(.*?)<'#匹配链接值的正则表达式,括号部分是我们要取出的分组
13
14  #我们对每一行进行正则表达式查找,只有一行有,如果返回的list不为空,说明找到了
15  for line in lines:
16      if re.findall(p,line) <> []:
17          result = re.findall(p,line)
18         
19  #我们打印出来看看
20  for word in result:
21      print word,
22
23if __name__ == '__main__':
24  getNames()
25

运行结果:

给TA打赏
共{{data.count}}人
人已打赏
安全经验

职场中的那些话那些事

2021-9-24 20:41:29

安全经验

MMORPG服务器架构

2021-11-28 16:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索