Python爬取豆瓣电影信息遇到的问题

Python爬取豆瓣电影信息

说明

本文章并不是爬取电影来看,而是获取电影信息。

用到的库:
在这里插入图片描述

前言

当我打开百度搜索利用Python爬取豆瓣电影信息,随手打开一个爬取TOP250电影的教程。当我跟着以下步骤

import requests
import json
from bs4 import BeautifulSoup

# 构造请求头部
headers = {
        'USER-AGENT':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
         }
#网页地址
url = "https://movie.douban.com/top250?start="
# 发送请求,获得响应
response = requests.get(url=url,headers=headers)
# 获取网页html
html = response.text
#解析
soup = BeautifulSoup(html,'lxml')
#随便输出一个标签内容
tagData = soup.select('.hd')
#输出
print(tagData)

结果:

真香!!!就找个页面搞一搞。

按年份来爬取电影信息

在这里插入图片描述
当我按上面的代码将url改成https://movie.douban.com/tag/#/,然后也是随便找个标签试试能不能拿到数据。

import requests
import json
from bs4 import BeautifulSoup

# 构造请求头部
headers = {
        'USER-AGENT':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
         }
#网页地址
url = "https://movie.douban.com/tag/#/"
# 发送请求,获得响应
response = requests.get(url=url,headers=headers)
# 获取网页html
html = response.text
#解析
soup = BeautifulSoup(html,'lxml')
#随便输出一个标签内容
tagData = soup.select('.article')
#输出
print(html)

结果:
在这里插入图片描述
回去看看页面的F12。发现没有问题啊,是有数据的,怎么拿不到呢。。。。
在这里插入图片描述

解决

回去代码观察爬取下来的html网页发现

在这里插入图片描述
数据显示的是这段js代码,看到这里意识到数据可能是加载html页面之后再嵌入进去的。既然看的到电影信息,说明肯定是接收到数据的。打开一下F12查看请求URL
在这里插入图片描述
URL地址:https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=&start=0&year_range=2020,2020
通过postman软件去访问请求地址
在这里插入图片描述
可以,直接返回json数据,谢谢你了。都不用BeautifulSoup解析页面

最终代码

import requests
import json


# 构造请求头部
headers = {
        'USER-AGENT':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
            }

yearList = [2020 , 2010 , 2000 , 1990 , 1980 , 1970, 1960]

for year in yearList:
    #网页地址
    url = "https://movie.douban.com/j/new_search_subjects?sort=S&range=0,10&tags=&start=0&year_range="+str(year)+","+str(year+9)
    # 发送请求,获得响应
    response = requests.get(url=url,headers=headers)
    # 获取网页html
    data = response.text
    #获取json
    jsonData = json.loads(data)
    # 从json中获取列表
    data = jsonData['data']
    print('年份:'+str(year))
    #遍历
    for key in data:
        print("片名:"+key['title']+" 评分:"+key['rate'],'')



结果
在这里插入图片描述
至于请求URL中的参数详解可以看一下这个链接
https://www.cnblogs.com/fangtaoa/p/8366528.html

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
爬虫可以用来爬取豆瓣电影Top250的数据信息,并进行数据分析。在这个过程中,可以运用Python编程语言以及一些相关的库和工具,如pymysql、pandas、pyecharts和matplotlib。首先,使用Python编写爬虫程序,通过网络请求获取豆瓣电影Top250的数据,并将其写入CSV文件中。然后,可以使用pymysql库将数据存储到数据库中。接下来,可以使用pandas库对数据进行清洗和处理,以便后续分析。最后,可以使用pandas、pyecharts和matplotlib等工具对数据进行可视化,以便更好地理解和展示分析结果。这个过程中可能会遇到一些问题,例如IP被封锁或网站设置了IP访问次数限制。解决这些问题的方法可以是使用代理进行爬取,或者将评论和电影名称对应起来,进行数据标记和存储。另外,还可以考虑使用其他方式存储数据,如数据库,以便后续进一步分析和处理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Python爬取、存储、分析、可视化豆瓣电影Top250](https://blog.csdn.net/m0_51873294/article/details/123837719)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [【网络爬虫】爬取豆瓣电影Top250评论](https://blog.csdn.net/Daycym/article/details/82787589)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值