爬取央视榜单节目

爬取结果:

 

热播榜: 动画片:

 电视剧:

纪录片:

特别节目:

代码部分: 

import re
import pymongo

import requests

res = requests.get('https://tv.cctv.com/top/index.shtml?spm=C28340.PdNvWY0LYxCP.EtmP5mypaGE4.11')
content = res.content.decode("utf8")
# print(content)
datas = re.findall(r"<ul>.*?</ul>", content, re.S)
# print(datas[1])   # 热播榜
# print(datas[2])   # 动画片
# print(datas[3])   # 电视剧
# print(datas[4])   # 纪录片
# print(datas[5])   # 特别节目

# 热播榜
# result = {
#     "name": "热播榜",
#     "items": []
# }
# # re.S 包括换行
# items = re.findall(
#     r'<li.*?lazy="(.*?)".*?<div class="text"><a href=".*?" target="_blank">(.*?)</a></div>.*?<div class="column"><i class="icon_l"></i><a href=".*?" target="_blank">(.*?)</a><i class="icon_r"></i>.*?</div>',
#     datas[1], re.S)
# for item in items:
#     # print(item)
#     result["items"].append({
#         "img": item[0],
#         "title": item[1],
#         "category": item[2]
#     })
#
client = pymongo.MongoClient()
db = client.get_database("cctv")
# collection = db.get_collection("hot_show")
# collection.insert_one(result)


# 动画片
# result1 = {
#     "name": "动画片",
#     "items": []
# }
# items = re.findall(
#     r'<li.*?lazy="(.*?)".*?<div class="text"><a href=".*?" target="_blank">(.*?)</a></div>.*?<p><a href=".*?" target="_blank">(.*?)</a></p>',
#     datas[2], re.S)
# for item in items:
#     # print(item)
#     result1["items"].append({
#         "img": item[0],
#         "title": item[1],
#         "type": item[2]
#     })
# collection = db.get_collection("donghua")
# collection.insert_one(result1)


# 电视剧
# result2 = {
#     "name": "电视剧",
#     "items": []
# }
# items = re.findall(
#     r'<li.*?lazy="(.*?)".*?<span class="number"><i class="icon_l"></i><i class="txt">(.*?)</i><i class="icon_r"></i></span>.*?<div class="text"><a href=".*?" target="_blank">(.*?)</a></div>.*?<p><a href=".*?" target="_blank">(.*?)</a></p>',
#     datas[3], re.S)
# for item in items:
#     # print(item)
#     result2["items"].append({
#         "jishu": item[0],
#         "title": item[1],
#         "jieshao": item[2]
#     })
# collection = db.get_collection("dianshiju")
# collection.insert_one(result2)


# 纪录片
# result3 = {
#     "name": "纪录片",
#     "items":[]
# }
# items = re.findall(
#     r'<li.*?lazy="(.*?)".*?<span class="number"><i class="icon_l"></i><i class="txt">(.*?)</i><i class="icon_r"></i></span>.*?<div class="text"><a href=".*?" target="_blank">(.*?)</a></div>.*?<p><a href=".*?" target="_blank">(.*?)</a></p>',
#     datas[4], re.S)
# for item in items:
#     # print(item)
#     result3["items"].append({
#         "img":item[0],
#         "type":item[1],
#         "name":item[2],
#         "jiehsao":item[3]
#     })
# collection = db.get_collection("jilupian")
# collection.insert_one(result3)



# 特别节目
result4 = {
    "name": "特别",
    "items": []
}

items = re.findall(
    r'<li.*?lazy="(.*?)".*?<span class="number"><i class="icon_l"></i><i class="txt">(.*?)</i><i class="icon_r"></i></span>.*?<div class="text"><a href=".*?" target="_blank">(.*?)</a></div>.*?<p><a href=".*?"_blank">(.*?)</a></p>',
    datas[5], re.S)
for item in items:
    # print(item)
    result4["items"].append({
        "img": item[0],
        "pindao": item[1],
        "title": item[2],
        "jieshao": item[3]
    })
collection = db.get_collection("tebie")
collection.insert_one(result4)



client.close()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个关于R语言爬取图书榜单并进行数据预处理的问题。我可以为您提供一些基本的步骤和示例代码。 首先,您需要确定您要爬取的图书榜单的网站和页面链接。然后,使用R语言中的“rvest”包来进行网页爬取。以下是一个示例代码: ```r library(rvest) # 定义页面链接 url <- "https://book.douban.com/top250?start=0" # 获取网页内容 page <- read_html(url) # 使用CSS选择器获取图书信息 book_titles <- page %>% html_nodes(".pl2 a") %>% html_text() book_authors <- page %>% html_nodes(".pl + span") %>% html_text() book_ratings <- page %>% html_nodes(".rating_nums") %>% html_text() # 将获取到的数据存储在数据框中 book_data <- data.frame(title = book_titles, author = book_authors, rating = book_ratings) # 输出数据框 print(book_data) ``` 此代码将获取豆瓣图书榜单的前250本图书的标题、作者和评分,并将其存储在名为“book_data”的数据框中。 接下来,您需要进行数据处理和清洗,以便将数据用于您的分析和可视化。这可能包括删除重复项、处理缺失值、转换数据类型等。 以下是一个简单的代码示例,用于删除重复项: ```r # 删除重复项 book_data <- unique(book_data) ``` 这将删除数据框中的所有重复行。 最后,您可以使用R中的各种包和工具来分析和可视化您的数据。例如,您可以使用“ggplot2”包来创建漂亮的图表: ```r library(ggplot2) ggplot(book_data, aes(x = rating)) + geom_histogram() ``` 此代码将创建一个直方图,显示每个评分的图书数量。 希望这些示例代码能够帮助您开始使用R语言进行图书榜单数据预处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值