我正在使用python,requests和BeautifulSoup构建一个抓取网络的应用程序。

我声明一个类变量为:

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


我使用print self.TAG验证了此TAG

我从print self.TAG得到的输出是"span",{"data-automation":"jobListingDate"},这表明self.TAG与该字符串"span",{"data-automation":"jobListingDate"}相同

但是以下两行代码产生了不同的结果:


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),您实际上仅将单个字符串作为参数,即:

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


注意字符串周围的单引号'"\"span\",{\"data-automation\":\"jobListingDate\"}"相同

在您的第二个示例html.find("span",{"data-automation":"jobListingDate"})中,我们讨论的是两个参数。

当然,这会有所不同。

关于python - 无法识别转义的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47506851/

10-16 11:37