python 爬取电影天堂电影

20 篇文章 2 订阅
10 篇文章 0 订阅

主要介绍爬取电影天堂首页的电影列表,并将结果保存为csv文件.

1.首先导入需要的模块

import requests
from bs4 import BeautifulSoup
import csv

2.获取网页,并解析结果

def html_parser(url_start):
    #获取html
    try:
        headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}    #模拟浏览器登入 
        r=requests.get(url_start,headers=headers,timeout=10)  #获取网页
    except:
        pass
        #print(r.status_code)
    else:
        html = r.content.decode('gb2312','ignore')  #解码gb2312,忽略其中有异常的编码,仅显示有效的编码

        #print(len(html))          

    #解析网页
    soup = BeautifulSoup(html,'lxml')                                
    for li in soup.select('.co_area2 li'):  #选择所有class=co_area2 下的所有的 li 节点
        for a in li.select('a'):            #选择 li 节点下的 a 节点 
            link=url_start+a['href']        #构造每个电影的网页链接     
            item={                          #将获取的结果存储为字典
                "name":a.string,
                "link":link
            }
            save_result(item)               #每次获取一个结果后,存储一次
            item.clear()                    #存储后清空字典,为下次存储做准备

因为电影天堂的网页的编码方式是"gb2312",

<META http-equiv=Content-Type content="text/html; charset=gb2312">
<title>电影天堂_免费电影_迅雷电影下载</title>

需要在获取页面的时候,进行解码处理,如下

html = r.content.decode('gb2312','ignore')  #解码gb2312,忽略其中有异常的编码,仅显示有效的编码

3.存储结果

def save_result(item):                      #存储结果
    with open('dy.csv','a',newline='',encoding='utf-8') as csvfile:   #打开一个csv文件,用于存储
        fieldnames=['name','link']
        writer=csv.DictWriter(csvfile,fieldnames=fieldnames)
        writer.writerow(item)

4.主函数

def main():                                          #主程序
    with open('dy.csv','a',newline='') as csvfile:   #写入表头
        writer=csv.writer(csvfile)            
        writer.writerow(['name','link'])

    url_start="https://www.dy2018.com/"
    html_parser(url_start)

5.运行

if __name__ == '__main__':     #运行主程序
    main()

6.运行结果

欢迎关注,获取更多技能

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 用Python编写程序来爬取电影资源并下载十分方便。我们可以利用Python中的Requests库和BeautifulSoup库来获取目标网站上的电影信息,再通过正则表达式或其他解析方式,从网页中提取出我们想要的电影资源下载链接。最后,利用Python的文件下载模块或者其他第三方工具,将电影资源下载到本地。具体的步骤如下: 1.首先需要选择一个合适的网站,例如电影天堂电影港等,这些网站上都有大量的电影资源供我们爬取。 2.引入Requests库和BeautifulSoup库。通过Requests库发起HTTP请求,获取网页的HTML代码,再利用BeautifulSoup库对HTML代码进行解析和筛选。 3.从网页中提取出电影的名称、下载链接、封面图片等关键信息。可以利用BeautifulSoup库的find()和find_all()等方法,根据HTML源码中元素的CSS选择器、ID、Class等属性进行筛选和定位。 4.利用正则表达式或其他方式解析电影的下载链接。此时需要根据不同网站的下载链接格式及其特点,灵活应用解析方法。例如,电影天堂上的下载链接是用base64编码加密过的,需要使用base64库进行解码。 5.利用Python的文件下载模块或其他第三方工具,将电影资源下载到本地。对于文件较大的电影资源,可以使用多线程或异步编程的方式提高下载速度和效率。 6.最后,需要注意爬虫时要遵守法律法规和网站的使用规定,不能侵犯他人的权益和违反网站的服务条款。 ### 回答2: 随着网络的发展,越来越多的人选择在线观看电影来娱乐休闲。但是有时候我们想要下载电影,以便离线观看或分享给朋友。而使用 Python 爬取电影并下载是一个不错的选择。接下来,我将为大家介绍如何使用 Python 爬取电影并下载。 一、爬取电影信息 首先,我们需要爬取电影的信息,包括电影名称、下载链接、图片等等。一般来说,我们可以从电影网站上爬取这些信息。以豆瓣电影为例,我们可以使用 requests 和 Beautiful Soup 库来获取所需信息。 代码示例: ```python import requests from bs4 import BeautifulSoup url = 'https://movie.douban.com/top250' headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} res = requests.get(url, headers=headers) soup = BeautifulSoup(res.text, 'html.parser') movies = soup.select('.grid_view > li') for movie in movies: title = movie.select('span.title')[0].text.strip() img_url = movie.select('img')[0].get('src') download_url = movie.select('.info > div > a')[0].get('href') print(title, img_url, download_url) ``` 以上代码中,我们首先构造了一个 headers 请求头,模拟了浏览器的请求。然后使用 requests 库向网站发送请求,并使用 Beautiful Soup 库解析网页。接着,使用 CSS 选择器来获取电影列表,并从列表中获取所需信息。 二、下载电影 接下来,我们需要根据电影的下载链接,使用 Python 下载电影。一般来说,我们可以使用 requests 库下载电影,并将下载的电影保存到本地。 代码示例: ```python import requests url = 'https://movie.douban.com/subject/1292052/' headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} res = requests.get(url, headers=headers) download_url = res.url r = requests.get(download_url, stream=True) with open('movie.mp4', 'wb') as f: for chunk in r.iter_content(chunk_size=1024): f.write(chunk) ``` 以上代码中,我们首先获取并保存电影的下载链接。然后,使用 requests 库发送请求,并开启流模式(stream=True)来下载电影,并以二进制写入文件中('movie.mp4')。当然,如果你有更好的存储方式,也可以根据自己的需求进行保存。这里要注意的是,下载电影需要时间较长,因此建议使用流模式分批次下载。 三、总结 使用 Python 爬取电影并下载是一个有趣的练手项目,对于初学者来说,可以锻炼 Python 编程能力和理解 Web 技术。当然,在实践中需要注意法律法规,不得侵犯他人版权。 ### 回答3: Python是一种易于学习且强大的编程语言,它在数据科学、机器学习和自然语言处理等领域都有广泛的应用。其中,Python爬取电影并进行下载的功能也备受欢迎,它可以帮助我们快速获取电影资源并下载到本地。 要实现这个功能,我们需要借助一些第三方库,常用的有requests、beautifulsoup4和urllib等。首先,我们可以通过requests库进行网页的请求,获取到需要爬取电影页面的源代码,然后通过beautifulsoup4库进行页面的解析和信息的提取。例如,如果我们需要获取电影的下载链接,可以通过beautifulsoup4库的find_all方法获取到相应的标签,再用正则表达式对其中的链接进行提取。最后,我们可以利用Python自带的urllib库进行电影的下载操作。 另外,为了避免被网站封禁,我们还需要注意一些爬虫的规范。例如,可以设置间隔时间、修改UA头和设置代理IP等方式来减少被封禁的风险。此外,我们也要注意网站的版权法律政策,避免侵犯其他权利人的合法权益。 总的来说,利用Python爬虫技术来获取电影资源并进行下载是一个技术含量较高的操作,需要具备一定的技术功底和实践经验。但也正因为如此,Python爬虫技术的应用领域才是如此广泛和丰富。如果你有兴趣,欢迎进一步了解和探索相关技术,希望可以对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值