在网站中抓取"关于我们"参考时没有结果



我有一个网址列表,我想看看那里是否有一个名为"关于我们"或"联系"的部分。

我的方法如下(我如何确保我在特定网站的"关于我们"页面上):

import requests
from bs4 import BeautifulSoup as soup
url = ["https://www.stackoverflow.com", "http://grandeinganno.it", "https://towardsdatascience.com"]
for u in url: 
response = requests.get(u)
page = str(BeautifulSoup(response.content))

def getURL(page):
start_link = page.find("a href")
if start_link == -1:
return None, 0
start_quote = page.find('"', start_link)
end_quote = page.find('"', start_quote + 1)
url = page[start_quote + 1: end_quote]
return url, end_quote
while True:
url, n = getURL(page)
page = page[n:]
if url:
print (url)
else:
break

以下代码检查href属性和a元素文本中的"about":

def about_links(elm):
return elm.name == "a" and ("about" in elm["href"].lower() or 
"about" in elm.get_text().lower())

soup.find_all(about_links) 

不幸的是,即使我正在使用该问题中的代码和建议,当我开始从网站上抓取有关"关于我们"的信息时,某些内容也不起作用,因为我没有得到任何结果,而是错误(AttributeError:"函数"对象没有属性"后代")。

如何确定错误所在?

此脚本将检查页面中是否存在包含"关于"或"联系我们"<a>标记。如果是,则返回True

import requests
from bs4 import BeautifulSoup

urls = ["https://www.stackoverflow.com", "http://grandeinganno.it", "https://towardsdatascience.com"]
def check(url):
soup = BeautifulSoup(requests.get(url).content, 'html.parser')
# check if there exists <a> tag with "about" or "contact us"
tag = soup.find(lambda t: t.name=='a' and 'about' in t.text.lower() or 'contact us' in t.text.lower())
return bool(tag)
for url in urls:
print('{:<30} {}'.format(url, check(url)))

指纹:

https://www.stackoverflow.com  True
http://grandeinganno.it        False
https://towardsdatascience.com True

最新更新