Skip to content

HackHarry/PythonSpider-MaoyanTop100

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

MaoyanTop100

介绍

今天打算做一个小项目,爬取猫眼电影top100

正文

URL分析 打开网址,发现Top100分为10页,每页10部电影,转到第二页分析URL http://maoyan.com/board/4?offset=10 可以看到多了个offset参数,猜测是由offset来控制页面,于是转到第三页,发现offset变为20,猜测成立

正则表达式分析 接下来查看网页源码,可以发现所需要爬取的内容均在源码中,用requests库爬取html,然后正则表达式解析即可 我们所需要爬取的是电影名称、主演、上映时间、评分,据此写出正则表达式如下 regex = 'p class="name">.*?>(.*?)</a></p>.*?>(.*?)</p>.*?>(.*?)</p>.*?<i class="integer">(.*?)</i>.*?ion">(.*?)</i></p>' 通过程序测试,爬取结果无误

代码逻辑分析 根据功能模块不同,将程序分为主函数、爬取函数、解析html函数、输出函数四个部分 主函数用循环传入offset的值到爬取函数,并初始化文件,为了防止因为爬取太快而被检测出爬虫,可以暂停一段时间再进行下一次爬取

def main():
	open('data.csv', 'w')
	for i in range(10):
		parse_html(get_html(i*10))
		print('finish', i)
		time.sleep(0.5)
	print('finish!')

爬取函数根据offset爬取页面html然后传给解析函数,解析函数根据正则表达式解析出所需要的内容传给输出函数,文件输出则用了比较简单的csv文件

结果 部分结果贴图展示,代码和全部结果开源在github上了

总结

这次实践是比较简单的,没有复杂的js部分,单纯解析html就好。爬取结果单从现在角度看只能用来补剧,但是如果隔段时间爬取一次,也许可以做一个数据分析,到时候可以做个Top10电影以及评分变化折线图

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages