我在使用python3爬虫提取文本时,遇到了文本内容中含有换行的符号,确切来说是:没看到换行符,但是它实际换行了,想请教怎么去除中间的这个换行。
网页源码为:
<div class="details_1221_d02">
UNIQLO(日文假名发音:ユニクロ),日本服装品牌,由日本迅销公司建立于1963年,当年是一家销售西服的小服装店,现已成为国际知名服装品牌。[1]
优衣库现任董事长兼总经理柳井正在日本首次引进了大卖场式的服装销售方式,通过独特的商品策划、开发和销售体系来实现店铺运作的低成本化。
</div>
其中[1]后面,优衣库前面的内容是网页源码中自动给换行了。
然后我的写的代码为:
from selenium import webdriver
from bs4 import BeautifulSoup
url = 'http://www.innotree.cn/company/25.html'
browser = webdriver.Firefox()
browser.get(url)
html = browser.page_source
soup = BeautifulSoup(html, 'html.parser')
companybrief = soup.find(class_="details_1221_d02").get_text().strip()
print(companybrief)
运行结果是和div标签内的文本内容相同的,只是[1]后面换行的问题无法解决,这样的话影响到了我文件的存储结构(不该换行的时候它换了),想请问各位大神该怎么办,我试过这些方法:
companybrief = soup.find(class_="details_1221_d02").replace("\r\n","").get_text().strip()
结果是整个companybrief的内容都没有了,"\n"也不成功,replace()放在get_text()后面情况相同,总之不成功。我猜测是因为网页的这个文本内容本身看不到换行符,所以不成功,但是我不知道该怎么解决,是不是应该转码后再替换,但我又不会转码。
另外,有的时候这个div标签的内容中含有br标签,而不是直接的换行,那又该怎么解决呢?比如说:
<div class="details_1221_d02">
搜房网(Fang.com)是全球最大的房地产家居网络平台,2010年9月在美国纽约证券交易所成功上市(股票代码SFUN)。目前拥有106个分公司,业务覆盖中国330多个城市。搜房网页面浏览量和独立访客数在同行业网站中排名首位。搜房网一直引领新房、二手房、家居、房地产研究等领域的互联网创新。
<br>搜房网主要产品有:搜房帮、搜房夜店、搜房委托等。
</div>
请各位大神指教,感谢!
这样就可以了,你原始打出来的 companybrief为 Unicode 格式,转成 utf-8之后,就可以进行字符串操作。现在的执行结果为