爬取电影天堂的电影信息

今天做了一早上的爬虫,爬去电影天堂的电影链接。使用了正则表达式。总的来说来不错。上代码。已经实现的功能:

1.抓取电影发布的日期
2.电影的名字
3.电影的年代
4.电影的产地
5.电影的类别
6:电影的字幕

目前还在考虑,需不需要这么多的字段。
也还遇到一些问题,比如 想抓取豆瓣评分。但是电影天堂的网页布局,有些不一样。很明显是两个人写的。。 尴尬!!

想要达到的预期目标,抓取电影名字,类别,海报,下载地址。
这些都基本上都完成了。
上一段代码:

from urllib.request import urlopen
from urllib.error import HTTPError
from bs4 import BeautifulSoup
from time import sleep
import re
moviesLinks = set()        #全局变量,来储存主网页的链接

def getLinks(pageUrl):
    global moviesLinks     
    html = urlopen(pageUrl)
    bs4 = BeautifulSoup(html,"xml")
    #print(bs4.prettify())

    for link in bs4.findAll("a",{"href":re.compile("/html/gndy/+[a-z]+/[0-9]+/[0-9]+\.html")}):  #正则表达式选取电影链接(过滤掉游戏下载链接,动漫链接,综艺链接)
        if link.attrs['href'] not in moviesLinks:
            newLink = link.attrs['href']
            print(newLink)
            moviesLinks.add(newLink)
            getPageImformation(newLink)


def getPageImformation(pageUrl):
    url = 'http://www.dytt8.net/'+pageUrl
    html = urlopen(url)
    bs4 = BeautifulSoup(html,"xml")
    try:
        date = bs4.find("div",{"class":"co_content8"}).ul.get_text().strip()  #此时date还含有其他的东西
        date = date.split('\n')[0]  #这里就已经处理好了
    except AttributeError:
        print("一部分网页不是电影介绍的网页而已,不用担心")
    try:
        poster  =  bs4.find("div",{"id":"Zoom"}).img.attrs['src']
        print(poster)
    except AttributeError:
        print('一部分网页没有海报而已,不用担心')
    #这部分要进行 一些消息处理了(这网站写的   six  six)
    try:
        name = bs4.find("div",{"id":"Zoom"}).p.get_text().split('◎')[1][4:].strip()  #名字的处理
    except Exception:
        print("一部分网页不是电影介绍的网页而已,不用担心")
    try:
        time = bs4.find("div",{"id":"Zoom"}).p.get_text().split('◎')[3][4:].strip()

    except  Exception:
        print("一部分网页不是电影介绍的网页而已,不用担心")
    try:
        origin = bs4.find("div",{"id":"Zoom"}).p.get_text().split('◎')[4][4:].strip()
        print(origin)
    except Exception:
        print("一部分网页这个属性而已,不用担心")
    try:
        category = bs4.find("div",{"id":"Zoom"}).p.get_text().split('◎')[5][4:].strip()
        print(category)
    except Exception:
        print("一部分网页这个属性而已,不用担心")
    print("--------------------------------\n")
    try:
        downloadLink = bs4.find("td",{"bgcolor":"#fdfddf"}).a.get_text()
        print(downloadLink)
    except Exception:
        print("一些页面不是影片介绍的页面而已,不用担心")

getLinks('http://www.dytt8.net/')


#  3是年代
#  4是产地
#  5是类别
#  6是语言
#  7是字幕
#  8IMDb评分
# 

你可能感兴趣的:(爬取电影天堂的电影信息)