首页 > 编程语言 > 详细

Python爬取阳光电影详细信息汇总

时间:2020-04-24 22:45:15      阅读:63      评论:0      收藏:0      [点我收藏+]

一、主题式网络爬虫设计方案

1.主题式网络爬虫名称

    名称:爬取阳光电影详细信息汇总

2.主题式网络爬虫爬取的内容与数据特征分析

    本次爬虫主要爬取电影天堂华语电视剧信息

3.主题式网络爬虫设计方案概述(包括实现思路与技术难点)

    本次设计方案依靠request库访问,用BeautifulSoup分析网页结构获取数据,采集到的数据保存在本地。

二、主题页面的结构特征分析

1.最新电影列表页面结构分析

技术分享图片

 

 技术分享图片

 

 可以获取到框架的标签,在框架中拆分读取数据,获取内页地址

技术分享图片

 

 

技术分享图片

 

 技术分享图片

 

 

三、网络爬虫程序设计

1.爬取数据

def getVodList():
    #获取目标页面
    url = "https://www.ygdy8.net/html/gndy/dyzz/index.html"
    ua = {user-agent:Mozilla/5.0}
    r = requests.get(url, headers=ua)
    r.raise_for_status()
    r.encoding = gbk  #使用GBK编码
    #parse
    soup = BeautifulSoup(r.text, html.parser)
    #table.tbspan
    soup.find_all(table, class_=tbspan)
    #parse Title and Url
    for table in soup.find_all("a", class_=ulink):
        videos_name.append(table.get_text())
        videos_url.append(table.get(href))

 

2.爬取内页数据

 

def getVideoInfo(url):
    #获取目标页面
    ua = {user-agent:Mozilla/5.0}
    r = requests.get(https://www.ygdy8.net + url, headers=ua)
    r.raise_for_status()
    r.encoding = gbk
    #parse
    soup = BeautifulSoup(r.text, html.parser)
    #td-bgcolor
    for table in soup.find_all(td, attrs={"bgcolor": "#fdfddf"}):
        down_url = table.get_text()
    return down_url

 

3.爬取详细数据

 

getVodList()
#循环获取电影内页
for i, j in zip(videos_url, videos_name): 
    down_url = getVideoInfo(i)
    print([name] , j)
    print([down] , down_url)
    videos.append(j + "|" + down_url)
saveData(videos)

 

4.保存

def saveData(ulist):
    ‘‘‘
    保存数据
    ‘‘‘
    try:
         #创建文件夹
        os.mkdir("C:\ygdy")
    except:
        #如果文件夹存在则什么也不做
        ""
    try:
        #创建文件用于存储爬取到的数据
        with open("C:\\ygdy\\new_move_list.txt","w") as f:
            for i in range(len(ulist)):
                f.write(ulist[i])
                f.write(\n)
    except:
        "Error_saveData"

 

运行截图:

技术分享图片

 

 

完整代码:

#!/usr/bin/env python
# coding=utf-8

import requests
from bs4 import BeautifulSoup
import os
import re


videos_name = []
videos_url = []
videos = []



def getVodList():
    #获取目标页面
    url = "https://www.ygdy8.net/html/gndy/dyzz/index.html"
    ua = {user-agent:Mozilla/5.0}
    r = requests.get(url, headers=ua)
    r.raise_for_status()
    r.encoding = gbk  #使用GBK编码
    #parse
    soup = BeautifulSoup(r.text, html.parser)
    #table.tbspan
    soup.find_all(table, class_=tbspan)
    #parse Title and Url
    for table in soup.find_all("a", class_=ulink):
        videos_name.append(table.get_text())
        videos_url.append(table.get(href))
    

def getVideoInfo(url):
    #获取目标页面
    ua = {user-agent:Mozilla/5.0}
    r = requests.get(https://www.ygdy8.net + url, headers=ua)
    r.raise_for_status()
    r.encoding = gbk
    #parse
    soup = BeautifulSoup(r.text, html.parser)
    #td-bgcolor
    for table in soup.find_all(td, attrs={"bgcolor": "#fdfddf"}):
        down_url = table.get_text()
    return down_url

   
def saveData(ulist):
    ‘‘‘
    保存数据
    ‘‘‘
    try:
         #创建文件夹
        os.mkdir("C:\ygdy")
    except:
        #如果文件夹存在则什么也不做
        ""
    try:
        #创建文件用于存储爬取到的数据
        with open("C:\\ygdy\\new_move_list.txt","w") as f:
            for i in range(len(ulist)):
                f.write(ulist[i])
                f.write(\n)
    except:
        "Error_saveData"
        


getVodList()
#循环获取电影内页
for i, j in zip(videos_url, videos_name): 
    down_url = getVideoInfo(i)
    print([name] , j)
    print([down] , down_url)
    videos.append(j + "|" + down_url)
saveData(videos)

 

四、结论

本次作业让我学习了学习了几个新的库

Python爬取阳光电影详细信息汇总

原文:https://www.cnblogs.com/wjbw/p/12770412.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!