如何使用get_txt只匹配部分文本而不是精确的tex

2024-09-30 02:30:08 发布

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

我用的是partnumber = get_txt(soup, 'Part Number'),但有时零件号是复数零件号,这会破坏我的脚本。我怎样才能绕过这个问题,这样如果文本零件号匹配,那么我就可以get_txt?你知道吗

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36'}
r = requests.get(urldet, headers=headers)
soup = BeautifulSoup(r.content, "lxml")
partnumber = get_txt(soup, 'Part Number')

下面是错误

Traceback (most recent call last):
  in get_txt
    key_tag = soup.find('span', text=key).parent
AttributeError: 'NoneType' object has no attribute 'parent'

我得到一个错误是有意义的,因为没有文本零件号,而是文本零件号,所以为了解决这个问题,我手动更改了我要查找的文本,但我希望避免手动操作。你知道吗


Tags: key文本txt脚本numberget错误手动
1条回答
网友
1楼 · 发布于 2024-09-30 02:30:08

How to use get_txt to match only part of text instead of exact text

答案是regex。你知道吗

可以在get_txt函数中添加regex搜索文本。你知道吗

def get_txt(soup, key):
    key_tag = soup.find('span', text=re.compile(key)).parent
    return key_tag.find_all('span')[1].text

你可以看到我把text=key改成了text=re.compile(key)。它将Part NumberPart Numbers或任何其他包含Part Number的文本匹配。你知道吗

相关问题 更多 >

    热门问题