【发布时间】:2020-11-26 10:28:18
【问题描述】:
我有 Python 代码,可以从包含 HTML 代码的字符串变量中解析数据。
我想要从 URL 获取 HTML 然后解析这些数据的代码。
工作代码(解析 HTML):
from bs4 import BeautifulSoup
data = '''\
<html>
<head>
<meta name="generator"
content="HTML Tidy for HTML5 (experimental) for Windows https://github.com/w3c/tidy-
html5/tree/c63cc39" />
<title></title>
</head>
<body>
<div class="Eqh F6l Jea k1A zI7 iyn Hsu">
<div class="Shl zI7 iyn Hsu">
<a data-test-id="search-guide" href="" title="Search for "living room colors"">
<div class="Jea Lfz XiG fZz gjz qDf zI7 iyn Hsu" style="white-space: nowrap; background-color:
rgb(162, 152, 139);">
<div class="tBJ dyH iFc MF7 erh tg7 IZT mWe">Living</div>
</div>
</a>
</div>
</div>
</body>
</html>
'''
soup = BeautifulSoup(data, 'html.parser')
a = soup.select('div.Eqh.F6l.Jea.k1A.zI7.iyn.Hsu a')[0]
print(a['title'])
这是我尝试过但不起作用的方法(从 URL 获取 HTML 然后解析):
import requests
from bs4 import BeautifulSoup
vgm_url = 'https://www.pinterest.com/search/pins/?q=skin%20care'
html_text = requests.get(vgm_url).text
soup = BeautifulSoup(html_text, 'html.parser')
a = soup.select('div.Eqh.F6l.Jea.k1A.zI7.iyn.Hsu a')
for a in soup.select('div.Eqh.F6l.Jea.k1A.zI7.iyn.Hsu a'):
print(a['title'])
我没有收到任何错误,它不打印任何内容。 感谢您的帮助。
【问题讨论】:
-
你真的确定
html_text有你想要的文字吗?也就是说,它包含您想要的内容,而不是登录页面?
标签: python html-parsing