python "\xa0"怎样去除?
取列表下标【2】的地址数据,按此逻辑取出来的是“\xa0”,即空。请问如何修改代码在取列表下标【2】情况下,得到对应的地址?import chardet
import requests
from bs4 import BeautifulSoup
response = requests.get("https://itemcdn.tmall.com/desc/icoss1752193898fe9ed123908bf24e?var=desc")
encodingInfo = chardet.detect(response.content)
r_response = response.content.decode(encodingInfo['encoding'], 'ignore')
a = response.text.strip('var desc=')
soup = BeautifulSoup(a, features="lxml")
lst = []
for l in soup.find_all('span'):
lst.append(l.text)
print(lst)
\ xa0实际上是Latin1(ISO 8859-1)中的连续字符,也是chr(160)。应该将其替换为空格。
replace("\xa0",' ') 没懂你说的什么意思,看你代码里的链接的网页源代码,在“拍品名称”这个span后面的那个span的内容就是 ,本来就是空行啊?
cmy2019 发表于 2021-5-9 17:47
没懂你说的什么意思,看你代码里的链接的网页源代码,在“拍品名称”这个span后面的那个span的内容就是&nbs ...
要把这个空行删掉,否则取列表下标【2】,就把这个空行取出来了。看截图 本帖最后由 double07 于 2021-5-9 18:04 编辑
cdsgg 发表于 2021-5-9 17:46
\ xa0实际上是Latin1(ISO 8859-1)中的连续字符,也是chr(160)。应该将其替换为空格。
replace("\xa0", ...
请问代码加在哪里?我试出来仍然替换不了 print()打印出来那个字符是给你看的,其实你把他写入到文件,或者运用到其他地方,就会显示正常 \xa0 是不间断空白符 ,就是空格 加个判断,要事是空格就不添加到list里面
import chardet
import requests
from bs4 import BeautifulSoup
response = requests.get("https://itemcdn.tmall.com/desc/icoss1752193898fe9ed123908bf24e?var=desc")
encodingInfo = chardet.detect(response.content)
r_response = response.content.decode(encodingInfo['encoding'], 'ignore')
a = response.text.strip('var desc=')
soup = BeautifulSoup(a, features="lxml")
lst = []
for l in soup.find_all('span'):
if l.text == "\xa0":
pass
else:
lst.append(l.text)
print(lst) 直接循环的时候加个判断就好了
import chardet
import requests
from bs4 import BeautifulSoup
response = requests.get("https://itemcdn.tmall.com/desc/icoss1752193898fe9ed123908bf24e?var=desc")
encodingInfo = chardet.detect(response.content)
r_response = response.content.decode(encodingInfo['encoding'], 'ignore')
a = response.text.strip('var desc=')
soup = BeautifulSoup(a, features="lxml")
lst = []
for l in soup.find_all('span'):
if not l.text == '\xa0':
lst.append(l.text)
print(lst) 本帖最后由 double07 于 2021-5-9 23:07 编辑
感谢楼上热心回复:handshake
页:
[1]