微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从HTML页面提取文本?

如何解决如何从HTML页面提取文本?

彼得·伍德(PeterWood)回答了您的问题。

import urllib.request

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

但是,如果要提取数据(例如公司名称,地址和网站),则需要获取HTML源代码并使用HTML解析器对其进行解析。

我建议使用requests获取HTML源代码BeautifulSoup解析生成的HTML并提取所需的文本。

这是一个小片段,可以帮助您快速入门。

import requests
from bs4 import BeautifulSoup

link = "https://www.architecture.com/FindAnArchitect/FAAPractices.aspx?display=50"

html = requests.get(link).text

"""If you do not want to use requests then you can use the following code below 
   with urllib (the snippet above). It should not cause any issue."""
soup = BeautifulSoup(html, "lxml")
res = soup.findAll("article", {"class": "listingItem"})
for r in res:
    print("Company Name: " + r.find('a').text)
    print("Address: " + r.find("div", {'class': 'address'}).text)
    print("Website: " + r.find_all("div", {'class': 'pageMeta-item'})[3].text)

解决方法

例如,网页是链接:

https://www.architecture.com/FindAnArchitect/FAAPractices.aspx?display=50

我必须提供公司名称及其地址和网站。我尝试了以下将html转换为文本的方法:

import nltk   
from urllib import urlopen

url = "https://www.architecture.com/FindAnArchitect/FAAPractices.aspx display=50"    
html = urlopen(url).read()    
raw = nltk.clean_html(html)  
print(raw)

但它返回错误:

ImportError: cannot import name 'urlopen

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。