当前位置: 首页 > 面试题库 >

如何从HTML页面提取文本?

倪子晋
2023-03-14
问题内容

例如,网页是链接:

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

问题答案:

彼得·伍德(Peter
Wood)回答了您的问题(链接)。

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)


 类似资料:
  • 问题内容: 更新资料 Boilerpipe看起来确实工作得很好,但是我意识到我并不需要主要内容,因为许多页面上没有文章,而只是带有简短描述的链接到整个文本(这在新闻门户网站中很常见),并且我不想丢弃这些短裤文字。 因此,如果API执行此操作,请获取不同的文本部分/以某种方式将每个部分分开的块,这些块与单个文本不同(仅在一个文本中没有用),请报告。 问题 我从随机站点下载了一些页面,现在我想分析页面

  • 问题内容: 对于我的网站,我想添加一个新功能。 我希望用户能够上传他的书签备份文件(如果可能的话,可以从任何浏览器上传),这样我就可以将其上传到他们的个人资料,而他们不必手动插入所有文件… 我唯一缺少的是从上传文件中提取标题和URL的部分。任何人都可以提供从哪里开始或在哪里阅读的线索? 使用的搜索选项和如何从原始HTML文件提取数据?这是与我最相关的问题,因此不再赘述。 我真的不介意它是否使用jq

  • 问题内容: 我正在使用此代码检索本页主要文章中的文本。 问题是textview中没有显示任何内容。我要检索的文字都没有出现。Log.i与调试日志中的段一起显示。因此,我知道其连接成功。只是不知道为什么即时通讯没有在textview中获取任何文本。 问题答案: 以下是您问题的相关摘要: 您在这里犯了一个根本性的错误。文档中没有HTML标签。但是,有一个。根据有关Jsoup食谱一半的CSS选择器概述,

  • 我有一个Excel工作表,其中一栏填充了专利号。我需要提取每个相应专利的标题,并将其放在专利号旁边的单元格中。因此,代码应执行以下操作: 访问espacenet.com并打开需要名称的专利号。 获取标题。 将其放在所需单元格的Excel工作表中。 这是一个完美适用于第一个专利号的代码,但在这之后会立即出现错误。错误显示:“运行时错误'-2147417848(80010108)': 自动化错误调用的

  • 问题内容: 我正在开发一个程序,该程序可以下载HTML页面,然后选择一些信息并将其写入另一个文件。 我想提取段落标签之间的信息,但是我只能获得段落的一行。我的代码如下: 我试图添加另一个while循环,这样可以告诉程序继续写入文件,直到该行包含该标记为止; 问题答案: so 我真正喜欢使用的另一个html解析器是jsoup。您可以 在2行代码中获得所有元素。 然后再将其写到文件中 或者,如果您希望

  • 问题内容: 我正在用Java开发一个应用程序,该应用程序可以从不同的网页获取文本信息并将其汇总为一页。例如,假设我在不同的网页(例如印度教,印度时报,政治家等)上都有新闻。该应用程序应该从这些页面的每个页面中提取要点,并将它们整合为一条新闻。该应用程序基于Web内容挖掘的概念。作为该领域的初学者,我不知道从哪里开始我浏览了一些研究论文,这些论文将消除噪声作为构建此应用程序的第一步。 因此,如果给我

  • 结果我只想要abc,xyz,jkl。 相同的正则表达式或代码是什么...?

  • 问题内容: 我正在从html文件中读取文本并进行一些分析。这些.html文件是新闻文章。 码: 现在,我只想要文章的内容,而不是广告,标题等文本的其余部分。我如何在python中相对准确地做到这一点? 我知道一些工具,例如Jsoup(java API)和bolier,但我想在python中这样做。我可以找到一些使用bs4的技术,但仅限于一种类型的页面。我有来自众多来源的新闻页面。另外,也没有任何示