基于python的网络爬虫设计Word文档格式.doc

上传人:wj 文档编号:731184 上传时间:2023-04-29 格式:DOC 页数:9 大小:727KB
下载 相关 举报
基于python的网络爬虫设计Word文档格式.doc_第1页
第1页 / 共9页
基于python的网络爬虫设计Word文档格式.doc_第2页
第2页 / 共9页
基于python的网络爬虫设计Word文档格式.doc_第3页
第3页 / 共9页
基于python的网络爬虫设计Word文档格式.doc_第4页
第4页 / 共9页
基于python的网络爬虫设计Word文档格式.doc_第5页
第5页 / 共9页
基于python的网络爬虫设计Word文档格式.doc_第6页
第6页 / 共9页
基于python的网络爬虫设计Word文档格式.doc_第7页
第7页 / 共9页
基于python的网络爬虫设计Word文档格式.doc_第8页
第8页 / 共9页
基于python的网络爬虫设计Word文档格式.doc_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于python的网络爬虫设计Word文档格式.doc

《基于python的网络爬虫设计Word文档格式.doc》由会员分享,可在线阅读,更多相关《基于python的网络爬虫设计Word文档格式.doc(9页珍藏版)》请在冰点文库上搜索。

基于python的网络爬虫设计Word文档格式.doc

聚焦爬虫是一个自动下载网页的程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关的链接,获取所需要的信息。

与通用爬虫(generalpurposewebcrawler)不同,聚焦爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。

1.2编程设计目及思路

1.2.1编程设计目的

学习了解并熟练掌握python的语法规则和基本使用,对网络爬虫的基础知识进行了一定程度的理解,提高对网页源代码的认知水平,学习用正则表达式来完成匹配查找的工作,了解数据库的用途,学习mongodb数据库的安装和使用,及配合python的工作。

1.2.2设计思路

(1)以世纪佳缘网为例,思考自己所需要的数据资源,并以此为基础设计自己的爬虫程序。

(2)应用python伪装成浏览器自动登陆世纪佳缘网,加入变量打开多个网页。

(3)通过python的urllib2函数进行世纪佳缘网源代码的获取。

(4)用正则表达式分析源代码,找到所需信息导入excel。

(5)连接数据库,将爬下的数据存储在数据库中。

1.3本编程设计应达到的要求

1、对特定的网站爬取特定的数据;

2、实现代码和得到结果;

3、能够和数据库进行连接,将爬下的数据存储在数据库中。

4、将爬下的数据储存在excel中方便编辑。

2编程设计方案

2.1爬取方案

2.1.1所需爬取的数据

以世纪佳缘网为例,所需要爬取的数据为注册世纪佳缘网的人的用户名、真实姓名、性别、年龄、学历、月收入这些直观信息。

2.1.2用python获取世纪佳缘网的源代码

爬虫最主要的处理对象就是URL,它根据URL地址取得所需要的文件内容,然后对它进行进一步的处理。

因此,准确地理解URL对理解网络爬虫至关重要。

URL是URI的一个子集。

它是UniformResourceLocator的缩写,译为“统一资源定位符”。

通俗地说,URL是Internet上描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上。

采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。

URL的格式由三部分组成:

 

①第一部分是协议(或称为服务方式)。

②第二部分是存有该资源的主机IP地址(有时也包括端口号)。

③第三部分是主机资源的具体地址,如目录和文件名等。

第一部分和第二部分用“:

//”符号隔开,

第二部分和第三部分用“/”符号隔开。

第一部分和第二部分是不可缺少的,第三部分有时可以省略。

例如:

其计算机域名为;

超级文本文件(文件类型为.html)是在目录/talk下的talk1.htm。

这是瑞得聊天室的地址,可由此进入瑞得聊天室的第1室。

Python获取网页源代码可用urllib或urllib2函数进行,极其方便快捷,代码如下:

import 

urllib2 

response 

urllib2.urlopen('

html 

response.read() 

print 

2.1.3应用python伪装成浏览器自动登陆世纪佳缘网,加入变量打开多个网页。

有了源代码就可以进行数据的爬取了,但是因为世纪佳缘网近日进行了改版,简单的爬虫程序已经无法在对其进行全网页的爬取工作了,所以,在获取数据之前,需要对爬虫进行一下伪装,使其成为一个浏览器,以实现全网页的爬取工作。

应用opener和header的基础知识即可实现伪装成浏览器这一步骤。

在伪装的同时,需要加入变量来打开多个网页,是的爬取工作可以顺利进行。

代码如下:

r=0

w=3013

while3012<

w<

9999:

w=w+1

k=str(w)

login_page="

cj=cookielib.CookieJar()

opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))

opener.addheaders=[('

User-agent'

'

Mozilla/4.0(compatible;

MSIE6.0;

WindowsNT5.1)'

)]

data=urllib.urlencode({"

name"

:

"

834054996@"

"

password"

benben12"

})

opener.open(login_page,data)

op=opener.open("

html=op.read()

2.14用正则表达式分析网页源代码

正则表达式是用于处理字符串的强大工具,它并不是Python的一部分。

其他编程语言中也有正则表达式的概念,区别只在于不同的编程语言实现支持的语法数量不同。

它拥有自己独特的语法以及一个独立的处理引擎,在提供了正则表达式的语言里,正则表达式的语法都是一样的。

下图为使用正则表达式进行匹配的流程:

正则表达式的大致匹配过程是:

1.依次拿出表达式和文本中的字符比较,

2.如果每一个字符都能匹配,则匹配成功;

一旦有匹配不成功的字符则匹配失败。

3.如果表达式中有量词或边界,这个过程会稍微有一些不同。

Python是通过re模块实现对正则表达式的调用的。

程序代码如下:

find_re=pile(r"

absolute.+?

span>

(.*?

)<

/.+?

&

gt;

<

/a>

/h2>

.+?

/b>

/s.+?

/sp.+?

re.DOTALL)

2.2存储方案

2.2.1储存在excel表格中

Excel表格具有方便筛选、查找和编辑的特点,所以将网络爬虫爬取的数据储存在excel表格中是首选。

使用python建立excel表格是十分容易,代码如下:

filename=xlwt.Workbook()

sheet=filename.add_sheet('

name'

建立完成后可将数据写入excel表格:

forainx:

sheet.write(r,0,a[0].decode("

utf-8"

))

sheet.write(r,1,a[1].decode("

sheet.write(r,2,a[2].decode("

sheet.write(r,3,a[3].decode("

sheet.write(r,4,a[4].decode("

sheet.write(r,5,a[5].decode("

r=r+1

printr+3012

filename.save('

test3.xls'

2.2.2储存在数据库中

数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

将数据储存在数据库中也具有直观简洁的特点。

Python调用数据库是用pymongo模块,创建与导入代码如下:

db=pymongo.Connection().test

forainx:

values=dict(

img=a[0].decode("

),

infor=a[1].decode("

age=a[2].decode("

adress=a[3].decode("

marry=a[4].decode("

db.user.insert({'

values'

values})

content=db.user.find()

forainx:

print'

img:

'

+a[0].decode("

infor:

+a[1].decode("

age:

+a[2].decode("

adress:

+a[3].decode("

marry:

+a[4].decode("

3、总结

本程序利用了python语言编写网络爬虫程序,实现了从世纪佳缘网上爬取用户数据资料,使用urllib函数以及re模块、pymongo模块进行源代码的获取、编辑和数据的导出,并针对网页代码中无性别显示的问题,采取爬取注册用户信息同时爬取注册用户照片地址的方式解决,浏览所爬取信息时,只需将照片地址输入浏览器地址栏,即可得到所查看用户上传的自拍照,得到形象信息。

总的来说程序设计简便、实用性强、便于读取和再利用。

4、附录

4.1将爬取数据储存在excel表格

4.1.1源代码

#coding=gbk

importre

importxlwt

importcookielib

importurllib,urllib2#

re.DOTALL)

html=op.read()

x=find_re.findall(html)

4.1.2爬取数据汇总截图

4.2将爬取数据写入数据库

4.2.1源代码

importurllib

importpymongo

w=11

while10<

20:

page=urllib.urlopen("

html=page.read()

x=find_re.findall(html)

4.2.2爬取数据汇总截图

参考文献

(1)Guidovanrossum《Python手册》

(2)MagnusLieHetlar《python基础教程》

(3)罗刚,王振东《自己动手写网络爬虫》

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 化学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2