删除bs4中的\ r \ n以开始抓取

时间:2017-06-14 14:31:26

标签: python beautifulsoup

我已经使用此命令读取了一个URL:

import urllib2
from bs4 import BeautifulSoup
req = urllib2.Request(url, headers=hdr)
req2 = urllib2.urlopen(req)

content = req2.read()
soup = BeautifulSoup(content, "lxml")

我想抓一个如下结构的网站:

 <div class='\"companyNameWrapper\"'>
\r\n
<div class='\"companyName\"'>
 ACP Holding Deutschland GmbH
</div>
\r\n

问题是因为斜杠,像

这样的命令
soup.findAll("div", {"class":"companyName"}):

不起作用。我需要将汤转换为str来使用.replace('\',''),但是类型是字符串和soup.findAll(和类似的bs4命令无效)。

有人有建议吗?

由于

3 个答案:

答案 0 :(得分:1)

尝试下一步:

content.replace("\r", "").replace("\t", "")
#All replace as you need
soup = BeautifulSoup(content, "lxml")

答案 1 :(得分:0)

在我看来,我会考虑使用正则表达式来解决这个问题。举个例子,如果你想找到与类companyName匹配的元素,那么在这种情况下,我会这样做。

elements = soup.findAll(re.compile("^companyName"))

这将为您提供包含该特定类的所有匹配项的列表。然后,您可以通过索引甚至是访问它们。

我相信我有所帮助。

答案 2 :(得分:0)

你试过这样的吗?

print(item.contents [1] .find_all(“div”,{“class”:“companyName”})[0] .text.replace('\',''))