Python_Crawler_Urllib库_bilibili搜索

简介: Python_Crawler_Urllib库_bilibili搜索

环境介绍:

pycharm:图片下方附有下载链接

python:图片下方附有下载链接

image.png

Download PyCharm: Python IDE for Professional Developers by JetBrains

python:图片下方附有下载链接


image.png

Python Releases for Windows | Python.org

依赖库:配置完pycharm后,安装所需的库

image.png

爬虫源码

初步框架

from bs4 import BeautifulSoup
import re
import urllib.request,urllib.error
import xlwt
import time
def main():
    baseurl = "https://search.bilibili.com/video?keyword=%E9%9D%9E%E8%AF%9A%E5%8B%BF%E6%89%B0&page="
    datalist = getData(baseurl)
    savepath = ".\\非诚勿扰.xls"
    saveData(datalist,savepath)
#正则查找规则
findUrl = re.compile(r'<a class="img-anchor" href="(.*?)[?]from')
findImgSrc = re.compile(r'<a .*? title="(.*?)"',re.S)
findRB = re.compile(r'<span class="so-imgTag_rb">(.*?)</span>')
findUpName = re.compile(r'<a class="up-name".*?>(.*?)</a>')
findSoIconTime = re.compile(r'<i class="icon-date"></i>(.*?)</span>',re.S)
findWatchNum = re.compile(r'<i class="icon-playtime"></i>(.*?)</span>',re.S)
def getData(baseurl):
    datalist = []
    for i in range(1,51):
        url = baseurl + str(i)
        html = askURL(url)
        time.sleep(0.5)
        #解析
        soup = BeautifulSoup(html,"html.parser")
        for item in soup.find_all('li',class_='video-item matrix'):        
            data = []       #保存一个视频的所有信息
            item = str(item)
            Url = re.findall(findUrl,item)[0]
            pint = 'https:'
            data.append(pint+Url)
            ImgSrc = re.findall(findImgSrc,item)[0]
            data.append(ImgSrc)
            RB = re.findall(findRB,item)[0]
            data.append(RB)
            UpName = re.findall(findUpName,item)[0]
            data.append(UpName)
            SoIc = re.findall(findSoIconTime,item)[0].replace("\n","")
            data.append(SoIc.strip())
            Watch = re.findall(findWatchNum,item)[0].replace("\n","")
            data.append(Watch.strip())
            datalist.append(data)
    return datalist
def askURL(url):
    head = {
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36"
            }
        #用户代理
    request = urllib.request.Request(url,headers=head)
    html = ""
    try:
        response = urllib.request.urlopen(request)
        html = response.read().decode("utf-8")
    except urllib.error.URLError as e:
        if hasattr(e,"code"):
            print(e.code)
        if hasattr(e,"reason"):
            print(e.reason)
    return html
def saveData(datalist,savepath):
    book = xlwt.Workbook(encoding="utf-8",style_compression=0)
    sheet = book.add_sheet('非诚勿扰b站视频',cell_overwrite_ok=True)
    col = ("视频链接","标题","视频时长","up主","发布时间","播放次数")
    for i in range (0,6):
        sheet.write(0,i,col[i])
    for i in range(0,1000):
        print("第%d条" %(i+1))
        data = datalist[i]
        for j in range(0,6):
            sheet.write(i+1,j,data[j])
    book.save(savepath)
if __name__ == '__main__':
    main()
    print("完成!")
相关文章
|
4天前
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
29 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
28天前
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
106 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
1月前
|
机器学习/深度学习 存储 数据挖掘
Python图像处理实用指南:PIL库的多样化应用
本文介绍Python中PIL库在图像处理中的多样化应用,涵盖裁剪、调整大小、旋转、模糊、锐化、亮度和对比度调整、翻转、压缩及添加滤镜等操作。通过具体代码示例,展示如何轻松实现这些功能,帮助读者掌握高效图像处理技术,适用于图片美化、数据分析及机器学习等领域。
73 20
|
2月前
|
XML JSON 数据库
Python的标准库
Python的标准库
185 77
|
2月前
|
XML JSON 数据库
Python的标准库
Python的标准库
71 11
|
2月前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
105 8
|
2月前
|
安全 API 文件存储
Yagmail邮件发送库:如何用Python实现自动化邮件营销?
本文详细介绍了如何使用Yagmail库实现自动化邮件营销。Yagmail是一个简洁强大的Python库,能简化邮件发送流程,支持文本、HTML邮件及附件发送,适用于数字营销场景。文章涵盖了Yagmail的基本使用、高级功能、案例分析及最佳实践,帮助读者轻松上手。
88 4
|
3月前
|
人工智能 API 开发工具
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型
吴恩达发布的开源Python库aisuite,提供了一个统一的接口来调用多个大型语言模型(LLM)服务。支持包括OpenAI、Anthropic、Azure等在内的11个模型平台,简化了多模型管理和测试的工作,促进了人工智能技术的应用和发展。
226 1
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型
|
3月前
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
198 4
数据分析的 10 个最佳 Python 库
|
3月前
|
测试技术 Python
Python中的异步编程与`asyncio`库
Python中的异步编程与`asyncio`库

热门文章

最新文章

推荐镜像

更多