2017-06-14 101 views
0

我已閱讀使用此命令網址:刪除 r n開始刮

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命令無效)。

有沒有人有建議?

感謝

回答

0

在我看來,我會考慮使用正則表達式這個問題。例如,如果您想查找與公司類名稱相匹配的元素,那麼在這種情況下,我會這樣做。

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

這將給你一個列表,包含所有匹配的具體類。然後您可以通過索引或甚至訪問它們。

我相信我很有幫助。

+0

我看到**正則表達式**並立即想到:https://stackoverflow.com/a/1732454/4022608。使用BS的正則表達式處理程序是好的,但:) – Baldrickk

0

你試過這樣嗎?

打印(item.contents [1] .find_all( 「DIV」,{ 「類」: 「的companyName」})[0] .text.replace( '\', ''))

1

嘗試做下一個:

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