例如网页是链接:
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
彼得·伍德已经回答了你的问题(link).
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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)