2017-11-27 22 views
0

私は、Python、リクエスト、およびBeautifulSoupを使用してWebスクレイピングアプリケーションを構築しています。エスケープされた文字列が認識されない

ように私はクラス変数を宣言:私はprint self.TAG

を使用して、このタグを検証し、私はprint self.TAGからの出力を得た

class myClass(object): 
    TAG = "\"span\",{\"data-automation\":\"jobListingDate\"}" 

この文字列"span",{"data-automation":"jobListingDate"}

と同じである self.TAGを示唆して "span",{"data-automation":"jobListingDate"}です

しかし、次の2行のコードでは異なる結果が得られました。

  • r = requests.get("someURL")
  • html = BeautifulSoup(r.content, "html.parser")
  • html.find(self.TAG) #this line does not find anything at all
  • html.find("span",{"data-automation":"jobListingDate"}) #this line does find what I am after

私は、self.TAGはこの文字列"span",{"data-automation":"jobListingDate"}と同じではありませんか、混乱しています私は適切に何を免れませんか?

あなたが実際にのみ、すなわち、パラメータとして単一の文字列を入れている html.find(self.TAG)の場合
+0

「自己」とは何ですか? 'html.find'とは何ですか? –

+0

@cᴏʟᴅsᴘᴇᴇᴅ、問題解決済み。あなたのコメントをありがとう、私は最初からそれらを明確にすべきだった。 –

答えて

1

html.find('"span",{"data-automation":"jobListingDate"}') 

お知らせで"\"span\",{\"data-automation\":\"jobListingDate\"}"

と同じである文字列の周りの単一引用符'を、あなたの2番目の例のhtml.find("span",{"data-automation":"jobListingDate"})は、2つのパラメータについて話しています。

もちろん、これは異なる動作をします。

+0

ありがとう、あなたが言ったように、htmlとself.TAGが同じ型であるかどうかを調べるためにtype()を使用しました。 –

関連する問題