用python实现一个抓取电影的爬虫

实现思路:

抓取一个电影网站中的所有电影的思路如下:

  1. 根据一个URL得到电影网站的所有分类
  2. 得到每个分类中的电影的页数
  3. 根据其电影分类的URL规律构造每个分类中每个页面的URL
  4. 分析每个页面中的html,并用正则把电影信息过滤出来

准备工作:

  1. 安装python(我用的是mac系统,默认的版本是Python 2.7.1 )
  2. 安装mongodb,从官网下载最新版本,然后启动即可,注意如放在外网的话,要设定验证密码或绑定地址为127.0.0.1,否则黑客轻易就进去了
  3. 安装BeautifulSoup和pymongo模块
  4. 安装一个python编辑器,我个人喜欢用sublime text2

编写部分:

这次以腾讯视频为例,其他视频网站只是换一下正则表达式。

  1. 根据视频所有分类的URL获取网站中所有视频分类

腾讯的所有视频的URL为:http://v.qq.com/list/1_-1_-1_-1_1_0_0_20_0_-1_0.html

首先我们import urllib2包,封装一个读取url中html的方法,详细代码如下:

导入需要的模块并定义全局变量:

# -*- coding: utf-8 -*-
import re
import urllib2
from bs4 import BeautifulSoup
import string
import pymongo

NUM     = 0            #全局变量,电影数量
m_type     = u''        #全局变量,电影类型
m_site     = u'qq'    #全局变量,电影网站

 

gethtml方法,传入一个url,返回这个url的html内容:

#根据指定的URL获取网页内容
def gethtml(url):
    req = urllib2.Request(url) 
    response = urllib2.urlopen(req) 
    html = response.read()
    return html

然后查看这个URL的源码文件,得知其电影分类的信息在

你可能感兴趣的:(用python实现一个抓取电影的爬虫)