数据抓取:如何检查网页是否包含特定字符串

2024-04-18 20:03:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要创建一个“if语句”来检查字符串“cetteenterpriseestmembredelafve”是否是网页的一部分。

item_url = "http://www.fveconstruction.ch/anDetails.aspRT=2&M=01&R=1&ID=42105701"
response = requests.get(item_url)
soup = BeautifulSoup(response.text, 'html.parser')
test = soup.findAll(text = re.compile('cette entreprise est membre de la FVE.\w+..\w+'))
print(test)

它给我打印了一张空名单。有人有主意吗? 我想知道如何核对这份声明?如果我写:

if soup.findAll(text = re.compile('cette entreprise est membre de la FVE.\w+..\w+')): 
     do smth
else:
     do smth

如果没有我要找的字符串,它应该返回false对吗?


Tags: 字符串texttestreurlifresponseitem
2条回答

我检查了您在代码中提供的页面的HTML,发现了两件事。以下是您要查找的文本的实际HTML:

<span class="entrepriseDef">Cette entreprise est membre de la FVE&nbsp;&nbsp;</span>

我在代码中看到的两个问题是,您搜索的是小写字母“c”,而不是大写字母“c”。另外,你要在文本末尾搜索一个不存在的句点。当你在屏幕上抓取一个网站时,查看该页面的HTML(在浏览器中键入Control+U来查看HTML)并搜索准确的文本。然后将该文本复制/粘贴到您的代码中,使其更精确。

你的代码应该是这样的:

item_url = "http://www.fveconstruction.ch/anDetails.asp?RT=2&M=01&R=1&ID=42105701"
response = requests.get(item_url)
soup = BeautifulSoup(response.text, 'html.parser')
test = soup.findAll(text = re.compile('Cette entreprise est membre de la FVE\w+..\w+'))
print(test)

我不知道你的regex是否有效,因为你的regex不是你文章的一部分。

这个答案告诉您如何检查“网页是否包含特定的字符串”,而不存在regex问题。

import requests
r = requests.get('http://www.fveconstruction.ch/anDetails.asp?
RT=2&M=01&R=1&ID=42105701')

if 'cette entreprise est membre de la FVE.' in r.text:
    print ('Yes')
else:
    print ('No')

相关问题 更多 >