擅长:python、mysql、java
<p>在导入模块^{cd1>}时,请小心。在这种情况下,当您迭代时,第2行上的^{cd2>}将在^{cd3>}循环中被重写。</p>
<p>以下是一个较短的解决方案,它还将仅返回包含<strong>https</strong>的URL,作为<strong>href</strong>属性的一部分:</p>
<pre><code>from bs4 import BeautifulSoup
from urllib.request import urlopen
content = urlopen('https://pythonprogramming.net/parsememcparseface/')
soup = BeautifulSoup(content, "html.parser")
base = soup.find('body')
for link in BeautifulSoup(str(base), "html.parser").findAll("a"):
if 'href' in link.attrs:
if 'https' in link['href']:
print(link['href'])
</code></pre>
<p>但是,这会绘制一个不完整的图片,因为并非所有链接都是因为页面上有HTML标记的错误而捕获的。我也可以推荐以下的替代方案,它非常简单,在您的场景中工作完美(<strong>note</strong>:您需要包<a href="https://html.python-requests.org/" rel="nofollow noreferrer">Requests-HTML</a>):</p>
^{pr2}$
<p>这将输出所有URL,包括引用同一域上其他URL的URL和外部网站的URL。</p>