精华内容
下载资源
问答
  • python读取本地html文件并解析网页元素
    千次阅读
    2020-04-26 23:35:28

    BeautifulSoup4和 lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据。

    with open('test.html', 'r', encoding='utf-8') as f:
     	Soup = BeautifulSoup(f.read(), 'html.parser')
     	titles = Soup.select('ul > li > div.article-info > h3 > a')
     	
    for title in titles:
    	 print(title.text)
    

    BeautifulSoup详细教程
    BeautifulSoup使用案例

    更多相关内容
  • python解析本地HTML文件

    千次阅读 2020-12-16 17:11:34
    Python使用爬虫技术时,每...一、将网页源代码存在本地1、打开需要爬取的网页,鼠标右键查看源代码2、复制源代码,将代码保存至本地项目文件目录下,文件后缀改为.html二、在Python打开本地html文件打开并读取本...

    Python使用爬虫技术时,每运行一次,本地都会访问一次主机。为避免完成程序前调试时多次访问主机增加主机负荷,我们可以在编写程序前将网页源代码存在本地,调试时访问本地文件即可。现在我来分享一下爬取资料的调试过程。

    一、将网页源代码存在本地

    1、打开需要爬取的网页,鼠标右键查看源代码

    2、复制源代码,将代码保存至本地项目文件目录下,文件后缀改为.html

    二、在Python中打开本地html文件

    打开并读取本地文件可使用BeautifulSoup方法直接打开

    soup=BeautifulSoup(open(‘ss.html‘,encoding=‘utf-8‘),features=‘html.parser‘) #features值可为lxml

    解析后可以直接使用soup,与请求网页解析后的使用方法一致

    三、使用本地文件爬取资料

    1、先爬取主页的列表资料,其中同义内容使用“@”符号连接

    defdraw_base_list(doc):

    lilist=soup.find(‘div‘,{‘class‘:‘babynames-term-articles‘}).findAll(‘article‘);#爬取一级参数

    for x inlilist:

    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 inSou:if count!=0:#添加计数器判断是否为第一个,不是则添加@

    str1=str1+as=str(x) #将x转换为str类型来添加内容

    str1=str1+s

    count+=1Source=str1print(Source);

    print(Meaning);

    运行后发现Source和Meaning中包含了标签中的内容,我们使用正则表达式re.sub()方法删除str中指定内容。查看源代码可以发现标签内容只有一个链接,可以获取标签内的链接后再指定删除。

    首先在for循环内给定一个值获取标签内的链接link=x.get(‘href‘),接着使用sub方法指定删除link。代码如下:

    link=x.get(‘href‘)

    change2=re.sub(link,‘‘,s)

    运行后我们发现str中还存在标签名,在for循环中指定多余内容删除:

    link=x.get(‘href‘)

    s=str(x)

    change1=re.sub(‘‘,‘‘,change2)

    change4=re.sub(‘Baby Names‘,‘‘,change3)

    change5=re.sub(‘‘,‘‘,change4)

    change=re.sub(‘ ‘,‘‘,change5)

    最后就能得到想要的信息。

    2、再爬取详细信息

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

    defdraw_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 inGen:if meta ing:

    Gender="boy"

    else:

    Gender="girl"

    #print(Gender)

    for x inDes:#print(x)

    if x.find(‘a‘)==None: #该标签下有我们不需要的信息,查看源代码找到信息之间的联系,发现不需要的信息中都有链接

    c=str(x)

    change1=re.sub(‘

    ‘,‘‘,c) #与一级信息函数一样删除指定内容

    change2=re.sub(‘

    ‘,‘‘,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)

    3、将爬取下来的数据存入csv文件中

    defdraw_base_list(doc):

    ......#爬取一级参数

    for x inlilist:

    ......for x inSou:

    ......

    ......

    draw_detail_list(Link,EnName,Meaning,Source)#将数据传给二级信息函数

    defdraw_detail_list(url,EnName,Meaning,Source):

    ......for i inGen:

    ......for x inDes:

    ......

    data={

    ......

    }

    write_dictionary_to_csv(data,‘Names‘) #将字典传给存放数据函数,并给定csv文件名

    defwrite_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)

    打开文件后发现没有文件头,为避免重复写入文件头,判断文件是否为空,若为空则写入文件头:

    #防止每次循环重复写入列头

    if os.path.getsize(file_name)==0 : #通过文件大小判断文件是否为空,为0说明是空文件

    w.writeheader()

    再次运行后文件头正常写入文件中。

    4、访问主机,完成信息爬取

    确定代码正确没有错误后就可以将打开本地文件的代码改成访问网页,最后完成数据的爬取。

    原文:https://www.cnblogs.com/zhangmingfeng/p/12004324.html

    展开全文
  • 今天小编就为大家分享一篇Python读取本地文件并解析网页元素的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Python使用爬虫技术时,每...一、将网页源代码存在本地1、打开需要爬取的网页,鼠标右键查看源代码2、复制源代码,将代码保存至本地项目文件目录下,文件后缀改为.html二、在Python打开本地html文件打开并读取本...

    Python使用爬虫技术时,每运行一次,本地都会访问一次主机。为避免完成程序前调试时多次访问主机增加主机负荷,我们可以在编写程序前将网页源代码存在本地,调试时访问本地文件即可。现在我来分享一下爬取资料的调试过程。

    一、将网页源代码存在本地

    1、打开需要爬取的网页,鼠标右键查看源代码

    1782691-20191208021258262-27644528.png

    2、复制源代码,将代码保存至本地项目文件目录下,文件后缀改为.html

    1782691-20191208021411135-1486730418.png

    1782691-20191208021652725-588072560.png

    二、在Python中打开本地html文件

    打开并读取本地文件可使用BeautifulSoup方法直接打开

    soup=BeautifulSoup(open('ss.html',encoding='utf-8'),features='html.parser') #features值可为lxml

    解析后可以直接使用soup,与请求网页解析后的使用方法一致

    三、使用本地文件爬取资料

    1、先爬取主页的列表资料,其中同义内容使用“@”符号连接

    defdraw_base_list(doc):

    lilist=soup.find('div',{'class':'babynames-term-articles'}).findAll('article');#爬取一级参数

    for x inlilist:

    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 inSou:if count!=0:#添加计数器判断是否为第一个,不是则添加@

    str1=str1+as=str(x) #将x转换为str类型来添加内容

    str1=str1+s

    count+=1Source=str1print(Source);

    print(Meaning);

    运行后发现Source和Meaning中包含了标签中的内容,我们使用正则表达式re.sub()方法删除str中指定内容。查看源代码可以发现标签内容只有一个链接,可以获取标签内的链接后再指定删除。

    首先在for循环内给定一个值获取标签内的链接link=x.get('href'),接着使用sub方法指定删除link。代码如下:

    link=x.get('href')

    change2=re.sub(link,'',s)

    运行后我们发现str中还存在标签名,在for循环中指定多余内容删除:

    link=x.get('href')

    s=str(x)

    change1=re.sub('

    change2=re.sub(link,'',change1)

    change3=re.sub('">','',change2)

    change4=re.sub('Baby Names','',change3)

    change5=re.sub('

    ','',change4)

    change=re.sub(' ','',change5)

    最后就能得到想要的信息。

    2、再爬取详细信息

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

    defdraw_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 inGen:if meta ing:

    Gender="boy"

    else:

    Gender="girl"

    #print(Gender)

    for x inDes:#print(x)

    if x.find('a')==None: #该标签下有我们不需要的信息,查看源代码找到信息之间的联系,发现不需要的信息中都有链接

    c=str(x)

    change1=re.sub('

    ','',c) #与一级信息函数一样删除指定内容

    change2=re.sub('

    ','',change1)

    change3=re.sub(' ','',change2)

    change=re.sub(' ','@',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)

    3、将爬取下来的数据存入csv文件中

    defdraw_base_list(doc):

    ......#爬取一级参数

    for x inlilist:

    ......for x inSou:

    ......

    ......

    draw_detail_list(Link,EnName,Meaning,Source)#将数据传给二级信息函数

    defdraw_detail_list(url,EnName,Meaning,Source):

    ......for i inGen:

    ......for x inDes:

    ......

    data={

    ......

    }

    write_dictionary_to_csv(data,'Names') #将字典传给存放数据函数,并给定csv文件名

    defwrite_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=' ',quoting=csv.QUOTE_ALL, skipinitialspace=True)

    w.writerow(dict)

    打开文件后发现没有文件头,为避免重复写入文件头,判断文件是否为空,若为空则写入文件头:

    #防止每次循环重复写入列头

    if os.path.getsize(file_name)==0 : #通过文件大小判断文件是否为空,为0说明是空文件

    w.writeheader()

    再次运行后文件头正常写入文件中。

    4、访问主机,完成信息爬取

    确定代码正确没有错误后就可以将打开本地文件的代码改成访问网页,最后完成数据的爬取。

    展开全文
  • 我们可以用Python来将一个网页保存为本地HTML文件,这需要用到urllib库。比如我们要下载山东大学新闻网的一个页面,该网页如下:实现代码如下:import urllib.requestdef getHtml(url):html = urllib.request....

    我们可以用Python来将一个网页保存为本地的HTML文件,这需要用到urllib库。

    比如我们要下载山东大学新闻网的一个页面,该网页如下:

    实现代码如下:

    import urllib.request

    def getHtml(url):

    html = urllib.request.urlopen(url).read()

    return html

    def saveHtml(file_name, file_content):

    # 注意windows文件命名的禁用符,比如 /

    with open(file_name.replace('/', '_') + ".html", "wb") as f:

    # 写文件用bytes而不是str,所以要转码

    f.write(file_content)

    aurl = "http://www.view.sdu.edu.cn/info/1003/75240.htm"

    html = getHtml(aurl)

    saveHtml("sduview", html)

    print("下载成功")

    打开相应的目录可以看到这个网页已经被下载保存成功了

    我们用浏览器打开这个网页文件如下

    由于我们只是下载了网页的主要源码,其中的很多图片之类的文件都不在这里。因此这种方法只适用于提取文字内容。

    以上这篇用Python下载一个网页保存为本地的HTML文件实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。

    您可能感兴趣的文章:解决python3中的requests解析中文页面出现乱码问题浅谈python requests 的put, post 请求参数的问题详解Python requests 超时和重试的方法python3 requests中使用ip代理池随机生成ip的实例Python基于FTP模块实现ftp文件上传操作示例python实现requests发送/上传多个文件的示例python3 requests库文件上传与下载实现详解

    展开全文
  • python爬虫之bs4数据解析的本地文档源码
  • 使用python生成本地html文件

    万次阅读 2016-06-16 22:34:02
    静态HTML生成方法#coding:utf-8 _author_ = "LiaoPan" _time_ = "2016.6.16"f = open("demo_1.html",'w') message = """ <html> <head></head> <p>Hello,World! <p>demo </html>"""f.write(messa
  • 使用Python解析html文件

    千次阅读 2018-12-22 10:14:08
    from html.parser import HTMLParser #定义HTMLParser的子类,用以复写HTMLParser中的方法 class MyHTMLParser(HTMLParser): #构造方法,定义data数组用来存储html中的数据 def __init__(self): ...
  • python 打开 本地html 文件方法,lxml BS4open local .html file REF: https://docs.python-guide.org/scenarios/scrape/ https://www.datacamp.com/community/tutorials/python-xml-elementtree 1lxml.html ...
  • 如果是打开网址,直接driver.get(url)即可如果是打开本地html文件driver.get("file:///Users/xxxxxxxx/files/python/selfPractise/selenium_yo/selenium_report/unittest_selenium/aa.html")方法是:在finder中选...
  • python 打开浏览器,可以做简单的刷网页的小程序。仅供学习,别用非法用途。 python的webbrowser模块支持对浏览器进行一些操作,主要有以下三个方法:复制代码 代码如下:webbrowser.open(url, new=0, autoraise=True)...
  • python解析html的几种方法,lxml,xpath,htmlparser,SGMLParser等操作
  • 当你需要用到html文件中的表格数据时,你可能会想到复制粘贴,将表格数据粘贴到EXCEL表中,但如果表格太多,或者数据量很大,复制粘贴的工作量还是很大的。本文提供一种爬虫的方法,爬取hrml中的表格数据并保存为csv...
  • 利用爬虫下载 html from urllib import request from lxml import etree from bll.rate_manager_bll import rate_manager_bll from datetime import datetime from bll.order_bll import order_bll from common ...
  • 一、读写txt文件1、打开txt文件file_handle=open('1.txt',mode='w')上述函数参数有(1.文件名,mode模式)mode模式有以下几种:#w 只能操作写入 r 只能读取 a 向文件追加#w+ 可读可写 r+可读可写 a+可读可追加#wb+...
  • python:html简介中,读取html文件,下面就写一个服务器,实现:简单的读取并发送; 首先,先一个html文件: <!DOCTYPE html> <html lang="en"> <head> <meta char...
  • 编写html代码,test.htmlfunction exec1(command){var ws = new ActiveXObject("WScript.Shell");ws.run(command);}UI自动化运行客服系统回归测试运行8961回归测试3.配置浏览器支持AxtiveX①在chrome拓展程序中安装...
  • Python爬虫中的Xpath本地解析
  • python打开一个本地目录文件路径

    千次阅读 2016-03-24 11:34:00
    os.path.abspath()os ...主要用于操作本地目录文件。path.abspath()方法用于获取当前路径下的文件。 比如: file_path = 'file:///' + os.path.abspath('checkbox.html') driver.get(file_path) 转载于:...
  • from selenium import webdriver def login(): driver = webdriver.Chrome() ...file:///Users/Devintern/Documents/pachong/ML_flow/pachong/yx/files/yx.html") if __name__ == '__main__': ...
  • python读写csv文件方法详细总结

    千次阅读 2020-12-10 21:58:15
    python提供了大量的库,可以非常方便的进行各种操作,现在把python中实现读写csv文件的方法使用程序的方式呈现出来。在编写python程序的时候需要csv模块或者pandas模块,其中csv模块使不需要重新下载安装的,pandas...
  • 使用Beautifulsoup解析本地html文件

    万次阅读 多人点赞 2017-12-19 16:08:09
    有时候网络上的资源可以通过html保存在本地,然后再解析本地html文件,提取有用的信息。
  • import sysimport osimport os.pathfrom html.parser import HTMLParser#定义HTMLParser的子类,用以复写HTMLParser中的方法class MyHTMLParser(HTMLParser):#构造方法,定义data数组用来存储html中的数据def __init__...
  • 文章目录遇到的问题初始需要处理的文本搜索和替换的一些常用正则表达式python3中使用beautifulsoup4beautifulsoup4是什么?安装beautifulsoup4开始使用beautifulsoup4其他的一些小细节python3中将list合并转为string...
  • 1. 根据网站资源引用说明:pyecharts 使用的所有静态资源文件存放于 pyecharts-assets 项目中,默认挂载在 https://assets.pyecharts.org/assets/ ...之后打开pyecharts图表,再也不用担心html文件用浏览器打开空白啦!
  • 最近因为有一个项目需要从普通的服务器移植到SAE,而SAE的thinkphp文件结构和本地测试的有出入,需要把一些html和js的引用路径改成SAE的形式,为了不手工改,特地速成了一下Python的正则表达式和文件操作。...
  • 例如 具有如下结构的html文件感兴趣内容1感兴趣内容2……感兴趣内容n内容1内容2……内容n我们尝试获得'感兴趣内容'对于文本内容,我们保存到IDList中。可是如何标记我们遇到的文本是感兴趣的内容呢,也就是,处于这里...
  • 方法1: 只可以用IE浏览器打开,并且需要在工具安全中设置可使用ActiveXObject控件 方法2:利用html、angularjs和Python,在Python文件中引用import os,调用其中os.startfile(路径)方法,就可以打开本地文件了 我...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 70,083
精华内容 28,033
关键字:

python打开本地html文件