chuC. 2022-12-06 11:09 采纳率: 0%
浏览 23

csv文件没有数据,刚开始学习爬虫,这代码是在csdn找到的,帮我看看为什么实现不了csv文件有数据,感谢

csv文件没有数据,刚开始学习爬虫,这代码是在csdn找到的,帮我看看为什么实现不了csv文件有数据,感谢


import requests
from lxml import etree
import time
import random
import csv
import pandas as pd

def get_target(keyword, page,saveName):
    result = pd.DataFrame()

    for i in range(1, page + 1):
        headers = {
          'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}

        url = 'https://search.bilibili.com/all?keyword={}&from_source=nav_suggest_new0&page={}'.format(keyword, i)
        html = requests.get(url.format(i), headers=headers)
        bs = etree.HTML(html.text)
        items = bs.xpath('//li[@class = "video-item matrix"]')
        for item in items:
            video_url = item.xpath('div[@class = "info"]/div/a/@href')[0].replace("//","")                   #每个视频的来源地址
            title = item.xpath('div[@class = "info"]/div/a/@title')[0]                  #每个视频的标题
            region = item.xpath('div[@class = "info"]/div[1]/span[1]/text()')[0].strip('\n        ')          #每个视频的分类版块如动画
            view_num = item.xpath('div[@class = "info"]/div[3]/span[1]/text()')[0].strip('\n        ')         #每个视频的播放量
            danmu = item.xpath('div[@class = "info"]/div[3]/span[2]/text()')[0].strip('\n        ')         #弹幕
            upload_time  = item.xpath('div[@class = "info"]/div[3]/span[3]/text()')[0].strip('\n        ')  # 上传日期
            up_author = item.xpath('div[@class = "info"]/div[3]/span[4]/a/text()')[0].strip('\n        ')          #up主

            df = pd.DataFrame({'region': [region],'title': [title], 'view_num': [view_num], 'danmu': [danmu], 'upload_time': [upload_time], 'up_author': [up_author], 'video_url': [video_url]})
            result = pd.concat([result, df])

        time.sleep(random.random() + 1)
        print('已经完成b站第 {} 页爬取'.format(i))
    saveName = saveName + ".csv"
    result.to_csv(saveName, encoding='utf-8-sig',index=False)  # 保存为csv格式的文件
    return result

if __name__ == "__main__":
    keyword = input("请输入要搜索的关键词:")
    page = int(input("请输入要爬取的页数:"))
    saveName = input("请输入要保存的文件名:")
    get_target(keyword, page,saveName)


  • 写回答

1条回答 默认 最新

  • haoyunbaobel猪猪版 2022-12-06 11:18
    关注

    items = bs.xpath('//li[@class = "video-item matrix"]')返回结果为空,导致后面爬不到东西

    评论

报告相同问题?

问题事件

  • 创建了问题 12月6日

悬赏问题

  • ¥30 为什么会失败呢,该如何调整
  • ¥50 如何在不能联网影子模式下的电脑解决usb锁
  • ¥20 服务器redhat5.8网络问题
  • ¥15 如何利用c++ MFC绘制复杂网络多层图
  • ¥20 要做柴油机燃烧室优化 需要保持压缩比不变 请问怎么用AVL fire ESE软件里面的 compensation volume 来使用补偿体积来保持压缩比不变
  • ¥15 python螺旋图像
  • ¥15 算能的sail库的运用
  • ¥15 'Content-Type': 'application/x-www-form-urlencoded' 请教 这种post请求参数,该如何填写??重点是下面那个冒号啊
  • ¥15 找代写python里的jango设计在线书店
  • ¥15 请教如何关于Msg文件解析