Forward团队-爬虫豆瓣top250项目-项目进度

北城余情 提交于 2020-01-03 04:13:17

项目地址:https://github.com/xyhcq/top250

 

我们的项目是爬取豆瓣top250的电影的信息,在做这个项目前,我们都没有经验,完全是从零开始,过程中也遇到了很多困难,不过我们也乐于边学边做。

 

我们先分析了豆瓣top250的网页源码,发现都是html的代码,我们将我们需要的每组角标对应的信息都记录了下来,用于后续抓取。

top250中每部电影的网页基本都是这种格式:

1 https://movie.douban.com/top250?start=

递归增加的,所以我们后续也用得上

 

现阶段我们将程序的大体框架构建了出来,在打算进一步写的时候,我们发现,我们需要用到一些新知识:正则表达式以及beautifulsoup,然而悲剧的是,我们都不曾学过,所以组员们在最近都在学习正则表达式,幸运的是,老师最近的课上正好给我们讲了Python的正则表达式re模块的用法,解决了我们的一些问题,我们还需要学习beautifulsoup。

 

我们的程序框架是这样的:

 

复制代码
复制代码
 1 # -*- coding:utf-8 -*-
 2 import re
 3 from bs4 import BeautifulSoup
 4 
 5 def getHtml():
 6     # 用于获取豆瓣top250网站信息
 7     pass
 8 
 9 def getData():
10     # 解析html,存储获取到的信息
11     # 用于分析获取到的信息
12 
13     #电影标题
14     title = []
15     #电影评论数
16     rating_num = []
17     range_num = []
18     #演员
19     actor = []
20     data = {}
21     pass
22 
23 def getInfo():
24     # 用于处理获取到的信息,如存到列表中
25     # 重点来了,我们不会正则表达式,但是必须用。现在正在学习!!!
26     pass
27 
28 def writeMovie():
29     # 用于将结果写入到文件中
30     f=open("top250.txt","w")
31     f.write("test")
32     f.close()
33 
34 getHtml()
35 getData()
36 getInfo()
37 writeMovie()
复制代码
复制代码

很简陋,基本上什么功能都没有实现,连写入文件都是现复习的。

运行后当然什么结果也不会显示。

 

运行后除了能实现写入文件暂时没有什么实质功能。

 

然后我们学习了正则表达式:

.

代表任意字符

逻辑“或”操作

[]

匹配内部的任一字符或子表达式

[^]

对字符集和取非

-

定义一个区间

\

对下一字符取非(普通变特殊,特殊变普通)

*

匹配前面的字符或子表达式0次或多次

*?

惰性匹配上一个

+

匹配前一个字符或子表达式1次或多次

+?

惰性匹配上一个

?

匹配前一个字符或子串表达式0次或1次重复

{n}

匹配前一个字符或子表达式

{m,n}

匹配前一个字符或子表达式至少m次至多n次

{n,}

匹配前一个字符或子表达式至少n次

{n,}?

前一个的惰性匹配

^

匹配字符串的开头

\A

匹配字符串的开头

$

匹配字符串的结尾

[\b]

退格字符

\c

匹配一个控制字符

\d

匹配任意数字

\D

匹配数字以外的字符

\t

匹配制表符

\w

匹配任意数字、字母、下划线

\W

不匹配数字、字母、下划线

 

 

[0-9]

0123456789任意之一

[a-z]

小写字母任意之一

[A-Z]

大写字母任意之一

\d

等同于[0-9]

\D

等同于[^0-9],匹配非数字

\w

等同于[a-z0-9A-Z_]

\W

等同于[^a-z0-9A-Z_]

 

导入re

import re

 

re.match(patter,string,flags=0)

patter:匹配的正则表达式

string:要匹配的字符串

flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写;多行匹配等等。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!