Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

CodingBoyPeng/MoivesSpider

Open more actions menu
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

1 爬取入口

电影天堂有 5 个电影栏目,分别为最新电影日韩电影欧美电影国内电影综合电影。每个栏目又有一定数量的分页,每个分页有 25 条电影信息。那么程序的入口可以有 5 个 url 地址。这 5 个地址分别对应每个栏目的首页链接。

2 爬取思路

知道爬取入口,后面的工作就容易多了。我通过测试发现这几个栏目除了页面的 url 地址不一样之外,其他例如提取信息的 xpath 路径是一样的。因此,我把 5 个栏目当做 1 个类,再该类进行遍历爬取。

我这里“最新电影”为例说明爬取思路。 1)请求栏目的首页来获取到分页的总数,以及推测出每个分页的 url 地址; 2)将获取到的分页 url 存放到名为 floorQueue 队列中; 3)从 floorQueue 中依次取出分页 url,然后利用多线程发起请求; 4)将获取到的电影页面 url 存入到名为 middleQueue 的队列; 5)从 middleQueue 中依次取出电影页面 url,再利用多线程发起请求; 6)将请求结果使用 Xpath 解析并提取所需的电影信息; 7)将爬取到的电影信息存到名为 contentQueue 队列中; 8)从 contentQueue 队列中依次取出电影信息,然后存到数据库中。

3 设计爬虫架构

根据爬取思路,我设计出爬虫架构。如下图所示:

4 代码分析

  • main 类 主要工作两个:第一,实例化出一个dytt8Moive对象,然后开始爬取信息。第二,等爬取结束,将数据插入到数据库中。

  • TaskQueue 类 维护 floorQueue、middleQueue、contentQueue 三个队列的管理类。之所以选择队列的数据结构,是因为爬虫程序需要用到多线程,队列能够保证线程安全。

  • dytt8Moive 类 dytt8Moive 类是本程序的主心骨。程序最初的爬取目标是 5 个电影栏目,但是目前只现实了爬取最新栏目。如果你想爬取全部栏目电影,只需对 dytt8Moive 稍微改造下即可。

5 爬取结果

我这里展示自己爬取最新栏目中 4000 多条数据中前面部分数据。

About

爬取电影天堂的电影爬虫

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.