私は最近美しいスープ 4 を使用しており、これのいくつかの基本を理解するのに苦労しています (何らかの理由で bs3.x でまったく問題ありませんでした)。たとえば、次のような簡単なことから始めましょう。
data=soup.find_all('h2')
次のような結果が得られます。
<h2><a href=\"/accurate-data/210-0023.prd?pageLevel=&skuId=210-0023\">more-accurate-data</a></h2>
これは問題ありません。しかし、上記の文字列を正規表現したい場合は、行に沿って何かを使用します(上記が「temp」に保存されていると仮定します):
t=str(re.compile(r"""<h2><a href=\\"/accurate(.*?)\\">""").search(str(temp)).group(1))
私は得る:
AttributeError: 'NoneType' object has no attribute 'group'
これは奇妙だと思います-なぜなら、Pythonインタープリターで行うと、次のようなものだからです:
k=r"""<h2><a href=\"/accurate-data/210-0023.prd?pageLevel=&skuId=210-0023\">more-accurate-data</a></h2>"""
上記の正規表現を使用すると、すべて正常に動作します。bs4 によって生成された「タグ」タイプが正規表現できないように見えるのはなぜだろうと思っています。今、私は何かばかげたことをしているのかもしれないし、bs3.x と bs4 の間で気づいていない何かが変わったのかもしれません。これに関する助けをいただければ幸いです。ありがとう。