爬取豆瓣最近上映电影

小姐姐说最近约个电影看看,问我最近会上映哪些电影呢?让我去豆瓣上查查看都有哪些。我心想,这下展示我才华的时候到了哦,可以用Python爬虫爬取哦。经过不断调试,终于扒拉出来咯,代码如下,小伙伴也可以拿去用哦

# -*- coding: utf-8 -*-
__author__ = 'ouyangmin'
__time__ = '2021/2/14 23:22'



import requests
from bs4 import BeautifulSoup

#请求网页
url = "https://movie.douban.com/cinema/later/shenzhen/"

# 伪装成浏览器的header
fake_headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36'
}
response = requests.get(url, headers=fake_headers)
# 保存网页到本地
file_obj = open('douban.html', 'w')
file_obj.write(response.content.decode('utf-8'))
file_obj.close()

# 解析网页
# 初始化BeautifulSoup方法:利用网页字符串自带的编码信息解析网页
soup = BeautifulSoup(response.content.decode('utf-8'), 'lxml')
all_movies = soup.find('div', id="showing-soon")
for each_movie in all_movies.find_all('div', class_="item"):
    all_a_tag = each_movie.find_all('a')
    all_li_tag = each_movie.find_all('li')
    movie_name = all_a_tag[1].text
    moive_href = all_a_tag[1]['href']
    movie_date = all_li_tag[0].text
    movie_type = all_li_tag[1].text
    movie_area = all_li_tag[2].text
    movie_lovers = all_li_tag[3].text
    print('名字:{},链接:{},日期:{},类型:{},地区:{}, 关注者:{}'.format(
        movie_name, moive_href, movie_date, movie_type, movie_area, movie_lovers))

执行结果如下,怎么样,可以满足需求吧

名字:梦醒黄金城,链接:https://movie.douban.com/subject/30433356/,日期:02月16日,类型:剧情,地区:中国大陆, 关注者:104人想看
名字:扶贫主任,链接:https://movie.douban.com/subject/30188047/,日期:02月23日,类型:剧情,地区:中国大陆, 关注者:342人想看
名字:猫和老鼠,链接:https://movie.douban.com/subject/3439312/,日期:02月26日,类型:喜剧 / 动画 / 冒险,地区:美国, 关注者:18155人想看
名字:郊区的鸟,链接:https://movie.douban.com/subject/26935281/,日期:02月26日,类型:剧情,地区:中国大陆, 关注者:9971人想看
名字:特工妈咪,链接:https://movie.douban.com/subject/33413559/,日期:02月26日,类型:喜剧,地区:意大利, 关注者:338人想看
名字:千顷澄碧的时代,链接:https://movie.douban.com/subject/34927951/,日期:02月26日,类型:剧情,地区:中国大陆, 关注者:295人想看
名字:第十一回,链接:https://movie.douban.com/subject/30279836/,日期:03月05日,类型:剧情 / 喜剧 / 家庭,地区:中国大陆, 关注者:18421人想看
名字:错爱迷踪,链接:https://movie.douban.com/subject/34926613/,日期:03月05日,类型:悬疑 / 惊悚,地区:中国大陆, 关注者:55人想看
名字:破晓徂徕山,链接:https://movie.douban.com/subject/35332838/,日期:03月09日,类型:历史 / 战争,地区:中国大陆, 关注者:41人想看
名字:合法伴侣,链接:https://movie.douban.com/subject/30174652/,日期:03月12日,类型:喜剧 / 爱情,地区:中国大陆, 关注者:4810人想看
名字:北京爱情图鉴,链接:https://movie.douban.com/subject/27067713/,日期:03月12日,类型:剧情,地区:中国大陆, 关注者:1667人想看
名字:三只小猪3正义大联萌,链接:https://movie.douban.com/subject/35356779/,日期:03月13日,类型:动作 / 奇幻 / 冒险,地区:中国大陆, 关注者:15人想看
名字:又见奈良,链接:https://movie.douban.com/subject/30437716/,日期:03月19日,类型:剧情,地区:中国大陆, 关注者:9577人想看
名字:一些往事,链接:https://movie.douban.com/subject/35352612/,日期:03月19日,类型:剧情,地区:中国大陆, 关注者:27人想看
名字:双水村里枣花香,链接:https://movie.douban.com/subject/35351889/,日期:03月26日,类型:爱情,地区:中国大陆, 关注者:20人想看
名字:来都来了,链接:https://movie.douban.com/subject/34670706/,日期:04月01日,类型:剧情 / 喜剧 / 爱情,地区:中国大陆, 关注者:3171人想看
名字:我的姐姐,链接:https://movie.douban.com/subject/35158160/,日期:04月02日,类型:剧情,地区:中国大陆, 关注者:9720人想看
名字:小美人鱼的奇幻冒险,链接:https://movie.douban.com/subject/35154209/,日期:04月03日,类型:动画 / 奇幻 / 冒险,地区:中国大陆, 关注者:2740人想看
名字:恐龙飞车,链接:https://movie.douban.com/subject/26271902/,日期:04月03日,类型:喜剧 / 动画 / 冒险,地区:中国大陆, 关注者:96人想看
名字:奇异世界历险记,链接:https://movie.douban.com/subject/34458727/,日期:04月03日,类型:喜剧 / 动画 / 冒险,地区:中国大陆, 关注者:22人想看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是使用Scrapy框架豆瓣即将上映电影的步骤: 1. 创建Scrapy项目 在命令行中执行以下命令: ``` scrapy startproject douban_movie ``` 2. 创建Spider 在命令行中执行以下命令: ``` scrapy genspider movie_spider movie.douban.com ``` 这里我们以`movie_spider`为Spider名称,以豆瓣电影即将上映页面(https://movie.douban.com/cinema/later/)为起始URL。 3. 编写Spider代码 打开`douban_movie/spiders/movie_spider.py`文件,修改`start_urls`和`parse`方法如下: ```python import scrapy class MovieSpider(scrapy.Spider): name = 'movie_spider' allowed_domains = ['movie.douban.com'] start_urls = ['https://movie.douban.com/cinema/later/'] def parse(self, response): for movie in response.css('.intro'): yield { 'title': movie.css('.title a::text').get(), 'date': movie.css('.date::text').get(), 'link': movie.css('.title a::attr(href)').get(), } ``` 解释一下代码: - `allowed_domains`属性指定了Spider可以的域名; - `start_urls`属性指定了Spider的起始URL; - `parse`方法是Scrapy处理响应的默认方法,它接收响应作为参数,并返回一个可迭代的对象; - `response.css('.intro')`表示获响应中所有class为`intro`的元素; - `movie.css('.title a::text').get()`表示获`movie`元素内class为`title`的`a`标签的文本; - `movie.css('.date::text').get()`表示获`movie`元素内class为`date`的文本; - `movie.css('.title a::attr(href)').get()`表示获`movie`元素内class为`title`的`a`标签的`href`属性值。 4. 运行Spider 在命令行中执行以下命令: ``` scrapy crawl movie_spider -o movies.json ``` 这里使用了`-o`参数将结果保存为JSON格式,保存在当前目录下的`movies.json`文件中。 5. 查看结果 打开`movies.json`文件,可以看到到的豆瓣即将上映电影信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

欧阳敏敏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值