爬取今日百度热搜电影榜

写在前面:爬虫可能会导致严重的后果,包括被起诉、罚款甚至监禁。我建议你遵守道德和法律规定,并尊重他人的权利和隐私。

要确定一个网站是否可以使用爬虫进行数据抓取,需要考虑以下几个方面:

  • 法律法规限制:在某些国家或地区,爬虫行为可能会受到法律限制。因此,你需要了解相关法律法规,确保你的爬虫行为合法合规。
  • 网站robots.txt文件:大多数网站都有一个名为robots.txt的文件(域名/robots.txt,例如:https://www.baidu.com/robots.txt),用于告知爬虫程序应该遵循的规则。你可以查看该文件,了解是否允许你的爬虫程序进行数据抓取
  • 网站反爬虫机制:为了保护网站数据,很多网站都会设置反爬虫机制,如IP限制、频率限制等。如果你尝试使用爬虫程序进行数据抓取,可能会遇到访问限制或封禁的情况
  • 隐私和安全问题:在使用爬虫程序抓取网站数据时,需要注意隐私和安全问题。如果网站包含敏感信息或个人数据,那么你需要确保你的爬虫程序不会泄露这些信息。

直接上代码 U·ェ·U

# 引入相关库
import requests
import pandas as pd
from bs4 import BeautifulSoup
import time

# 1.定义要爬取的url连接
url = 'https://top.baidu.com/board?tab=movie'

# 2.获取返回对象response,这里没有指定header信息,如果网站有反爬机制,请对应添加
respose = requests.get(url)
# 获取返回对象的HTML内容
data = respose.text

# 3.使用bs4解析对象
soup = BeautifulSoup(data, "lxml")

# 4.获取所需信息
# 4.1电影名称,使用字符串方法.strip()去除空格
name_list = [x.get_text().strip() for x in soup.select('.title_dIF3B')]
# 4.2电影热搜排名,使用get_text方法的strip参数去空格
index_list = [x.get_text(strip=True) for x in soup.select('.index_1Ew5p')]
# 4.3电影热搜指数
hotScore_list = [x.get_text(strip=True) for x in soup.select('.hot-index_1Bl1a')]
# 4.4电影描述
desc_list = [x.get_text(strip=True) for x in soup.select('.desc_3CTjT')]
# 4.5详情地址(其实是在百度中搜索电影)
rawUrl_list = [x.get_text(strip=True) for x in soup.select('.title_dIF3B')]
# 4.6其它内容(包括电影类型和主演)
other_list = [x.get_text(strip=True) for x in soup.select('.intro_1l0wp')]
# 4.6.1电影类型
type_list = [other_list[x].strip('类型:') for x in range(len(other_list)) if x % 2 == 0]
# 4.6.2电影主演
actor_list = [other_list[x].strip('演员:') for x in range(len(other_list)) if x % 2 != 0]

# 5.定义DataFrame所需的数据格式
movies_hot = {
    "热搜排名": index_list,
    "名称": name_list,
    "热搜指数": hotScore_list,
    "类型": type_list,
    "主演": actor_list,
    "详情": desc_list,
    "详情地址": rawUrl_list
}
# 6.创建为DataFrame对象
df = pd.DataFrame(movies_hot, index=movies_hot["热搜排名"])

# 7.保存为csv文件,index=False表示保存的csv文件无索引列
df.to_csv(f'./baidu_hot_movies_{time.strftime("%Y%m%d")}.csv',index=False)

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值