python解析本地html方法

这篇具有很好参考价值的文章主要介绍了python解析本地html方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python爬虫每次运行时都会访问一次主机,为了避免增加主机访问负荷,一般都是在本地解析。Python解析本地html文件方法如下:

1.将html文件本地保存

2.在Python中打开html文件,可使用BeautifulSoup方法直接打开

soup=BeautifulSoup(open('ss.html',encoding='utf-8'),features='html.parser')

3.获取本地文件资料

a.先爬取主页的列表资料,其中同义内容使用“@”符号连接,首先在for循环内给定一个值获取标签内的链接link=x.get('href'),接着使用sub方法指定删除link。代码如下:
link=x.get('href')
change2=re.sub(link,'',s)

def draw_base_list(doc):
    lilist=soup.find('div',{'class':'babynames-term-articles'}).findAll('article');
    #爬取一级参数
    for x in lilist:
        str1=''
        count=0
        a='@'
        EnName=x.find('a').text;
        Mean=x.find('div',{'class':'meaning'}).text;
        Sou=x.find('div',{'class','related'}).findAll('a')
        Link=x.find('a').get('href');
        for x in Sou:
            if count!=0:#添加计数器判断是否为第一个,不是则添加@
                str1=str1+a
            s=str(x)  #将x转换为str类型来添加内容
            str1=str1+s
            count+=1
        Source=str1
        print(Source);     print(Meaning);

在for循环中指定多余内容删除

link=x.get('href')
s=str(x)
change1=re.sub('<a href="','',s)
change2=re.sub(link,'',change1)
change3=re.sub('">','',change2)
change4=re.sub(' Baby Names','',change3)
change5=re.sub('</a>','',change4)
change=re.sub(' ','',change5)

b.通过def draw_base_list(doc)函数向二级详情函数传递Link参数爬取详细信息,为避免频繁访问主机,我们同样将详情页的源代码保存至本地并解析

def draw_detail_list():
    str1=‘’
    meta="boy"
    doc=BeautifulSoup(open('nn.html',encoding='utf-8'),features='html.parser')
    Des=doc.find('div',{'class':'single-babyname-wrapper'}).findAll('p')
    Gen=doc.find('div',{'class':'entry-meta'}).find('a')
    #print(Gen)
    g=str(Gen)
    for i in Gen:
        if meta in g:
            Gender="boy"
        else:
            Gender="girl"
    #print(Gender)
    for x in Des:
        #print(x)
        if x.find('a')==None:  #该标签下有我们不需要的信息,查看源代码找到信息之间的联系,发现不需要的信息中都有链接
            c=str(x)
            change1=re.sub('<p>','',c)  #与一级信息函数一样删除指定内容
            change2=re.sub('</p>','',change1)
            change3=re.sub('\t','',change2)
            change=re.sub('\n','@',change3)
            str1=str1+change
            #Description=x.text
            #print(Description)
    Description=str1
    #print(Description)
    data={  #将数据存进字典中方便将数据保存至csv文件或数据库中
        'EnName':EnName,
        'CnName':'',
        'Gender':Gender,
        'Meaning':Meaning,
        'Description':Description,
        'Source':Source,
        'Character':'',  #网页中没有的信息数据列为空
        'Celebrity':'',
        'WishTag':''
    }
    #print(data)

c.将爬取下来的数据存入csv文件中

def draw_base_list(doc):
    ......
    #爬取一级参数
    for x in lilist:
        ......
        for x in Sou:
            ......
        ......
        draw_detail_list(Link,EnName,Meaning,Source)  #将数据传给二级信息函数

def draw_detail_list(url,EnName,Meaning,Source):
    ......
    for i in Gen:
        ......
    
    for x in Des:
        ......
    
    data={
        ......
    }
    write_dictionary_to_csv(data,'Names')  #将字典传给存放数据函数,并给定csv文件名

def write_dictionary_to_csv(dict,filename):
    file_name='{}.csv'.format(filename)
    with open(file_name, 'a',encoding='utf-8') as f: 
        file_exists = os.path.isfile(filename)
        w =csv.DictWriter(f, dict.keys(),delimiter=',', quotechar='"', lineterminator='\n',quoting=csv.QUOTE_ALL, skipinitialspace=True)
        w.writerow(dict)

参考资料:python怎么解析本地html文件,python解析本地html方法_软件屋下载站文章来源地址https://www.toymoban.com/news/detail-628632.html

到了这里,关于python解析本地html方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 远程xml读取解析,将image url下载到本地,延时队列定时删除文件,图片访问路径保存在数据库中

    远程xml部分内容 mq发布端定时任务发送消息 mq消费端 1,远程xml读取 2,xml解析,将image中图片url保存在集合中 3,遍历集合,当本地不存在此图片时,下载图片至本地 4,将图片路径传给延时队列,用于稍后删除图片 5,保存自定义图片访问路径等信息到数据库 XMLUtil读取远程

    2024年02月15日
    浏览(47)
  • Python读取二进制文件:深入解析与技术实现

    目录 一、引言 二、二进制文件的基础 1、二进制文件的组成 2、二进制文件的编码 三、Python读取二进制文件的方法 1、使用内置函数open() 2、使用numpy库 四、处理读取的二进制数据 1、解析数据 2. 转换数据类型 五、总结与展望 1、高效读取二进制文件 2、处理复杂的二进制文件

    2024年02月04日
    浏览(40)
  • Python对csv文件一键多值保存为json本地文件再读取加速效率(3)

    🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍🌈 博客主页:一晌小贪欢的博客主页 👍 该系列文章专栏:Python办公自动化专栏 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏 ❤️ 欢迎各位佬关注! ❤️ 1、给我一张表格直

    2024年02月11日
    浏览(131)
  • Python中对open读取文件内容时的mode模式解析

    Python3中的open函数定义为: 其中mode列表为: 这里我们主要关心一下\\\'r\\\', \\\'w\\\', \\\'a\\\', \\\'r+\\\', \\\'w+\\\', \\\'a+\\\', \\\'x\\\',很多人容易混淆不同模式的读写操作 2.\\\'r\\\' 只读模式,open函数中mode参数的默认模式,文件不存在的话,报FileNotFoundError(python2是IOError); 文件打开后,初始游标位置为0; 每次读都

    2024年02月12日
    浏览(39)
  • 【100个 Unity实用技能】☀️ | Unity读取本地文件(Json,txt等)的三种方法示例

    老规矩,先介绍一下 Unity 的科普小知识: Unity 是 实时3D互动内容创作和运营平台 。 包括 游戏开发 、 美术 、 建筑 、 汽车设计 、 影视 在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和

    2023年04月08日
    浏览(60)
  • python 数据分析之 HTML文件解析

    HTML 是用来描述网页的一种语言。HTML 是一种在 Web 上使用的通用标记语言。HTML 允许你格式化文本,添加图片,创建链接、输入表单、框架和表格等等,并可将之存为文本文件,浏览器即可读取和显示。 HTML 指的是超文本标记语言: HyperText Markup Language HTML 不是一种编程语言,

    2024年02月16日
    浏览(46)
  • python opencv 读取文件夹下所有MP4文件并解析成jpg图像

    你可以使用Python的OpenCV库来读取文件夹中的所有MP4文件,并将其解析为JPG图像。以下是一个示例代码,演示了如何实现这个功能,并设置解析间隔为3帧: 请确保你已经安装了OpenCV库(可以使用pip install opencv-python进行安装)。将代码中的\\\"path/to/input/folder\\\"替换为包含MP4文件的实

    2024年01月19日
    浏览(59)
  • Python文件读取:readlines()方法详解

    Python文件读取:readlines()方法详解 Python是一种非常强大的编程语言,拥有各种各样的内置函数和模块来处理文件。其中,readlines()方法是Python中常用的文件读取方法之一,这篇文章就来详细介绍一下readlines()方法的使用。 一、readlines()方法概述 readlines()方法是Python内置的文件读

    2024年02月07日
    浏览(41)
  • python读取文件指定行的三种方法

    在python中如果要将一个文件完全加载到内存中,通过file.readlines()即可,但是在文件占用较高时,我们是无法完整的将文件加载到内存中的,这时候就需要用到python的file.readline()进行迭代式的逐行读取: 这里我们的实现方式是先用一个with语句打开一个文件,然后用readline()函数

    2024年04月28日
    浏览(52)
  • Python读取.nc文件的方法与技术详解

    目录 一、引言 二、使用netCDF4库读取.nc文件 安装netCDF4库 导入netCDF4库 打开.nc文件 获取变量 读取变量数据 案例与代码 三、使用xarray库读取.nc文件 安装xarray库 导入xarray库 打开.nc文件 访问变量数据 案例与代码 四、性能与优化 分块读取 使用Dask进行并行计算 减少不必要的变量

    2024年04月23日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包