|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 lawrence1357 于 2020-7-31 02:09 编辑
import requests
import bs4
import re
url = r'https://tongling.anjuke.com/sale/zongyangxian/'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36'
}
req = requests.get(url, headers=headers)
soup = bs4.BeautifulSoup(req.text, 'html.parser')
target_housetitle = soup.find_all('div', class_="house-title")
target_detailsitem = soup.find_all('div', class_="details-item")
target_commaddress = soup.find_all('span', class_="comm-address")
target_proprice = soup.find_all('div', class_="pro-price")
target_itemimg = soup.find_all('div', class_="item-img")
for tar in target_detailsitem:
print(tar)
----------------打印结果---------------------------
3室2厅|120m2|低层(共16层)|2019年建造
枞阳碧桂园  
枞阳县-汉武生态园-东湖路,近蒲洲路
3室2厅|130m2|低层(共17层)|2014年建造
华翔观天下  
枞阳县-汉武生态园-金山大道
3室2厅|129m2|低层(共17层)|2017年建造
...
...
...
----------------打印结果---------------------------
1.请问这个里面的换行,空格还有特殊的字符为什么替换不掉呢?
2.target_detailsitem = soup.find_all('div', class_="details-item")
target_commaddress = soup.find_all('span', class_="comm-address"),这两句对应的源码是:
-----------------------------------------------------------------------------------------------------------------------
<div class="details-item">
<span class="comm-address" title="阳光国际城  枞阳县-汉武生态园-渡江路">
阳光国际城  
枞阳县-汉武生态园-渡江路 </span>
</div>
<div class="details-item">
<span>3室2厅</span><em class="spe-lines">|</em><span>134m2</span><em class="spe-lines">|</em><span>中层(共6层)</span><em class="spe-lines">|</em><span>2012年建造</span>
</div>
-----------------------------------------------------------------------------------------------------------------------
请问这种标签的class=“****”是一样的应该怎么写? target_commaddress = soup.find_all('span', class_="comm-address")这个写法对吗?
因为用target_detailsitem = soup.find_all('div', class_="details-item")这句的话,
target_detailsitem.span.text的话,阳光国际城  枞阳县-汉武生态园-渡江路 也会被打印出来
替换后的字符串要重新赋值,不是在原字符串上直接进行替换的:
改成这样:for a in target_detailsitem:
x=a.text
x = x.replace('\n', '')
print(x)
|
|