gpt4 book ai didi

python - Unicode 提取

转载 作者:行者123 更新时间:2023-11-30 23:09:18 24 4
gpt4 key购买 nike

我已经编写了一个从某个网页中提取网址的代码,我面临的问题是它不会以网页上相同的方式提取网址,我的意思是如果该网址位于某些网页中法语,它不会按原样提取它。我该如何解决这个问题?

import requests
from bs4 import BeautifulSoup
for i in range(0,500):
o=36*i
r=requests.get('http://www.barneys.com/barneys-new-york/men?start='+str(o)+'&format=page-element&sz=36')
soup=BeautifulSoup(r.text)
links=soup.find_all("a",{"class":"thumb-link"})
for link in links:
print link.get('href')

最佳答案

网址为percent-encoded 。例如,在 HTML 中,URL 可能是

http://www.barneys.com/rick-owens-boucl%C3%A9-scarf-504025220.html

但在您的浏览器中,URL 可能显示

http://www.barneys.com/rick-owens-bouclé-scarf-504025220.html

要解码百分比编码的 URL,请在 Python2 中使用 urllib.unquote 或在 Python3 中使用 urllib.parse.unquote:

>>> print(urllib.unquote('http://www.barneys.com/rick-owens-boucl%C3%A9-scarf-504025220.html'))
http://www.barneys.com/rick-owens-bouclé-scarf-504025220.html
<小时/>
import requests
from bs4 import BeautifulSoup
try:
# Python2
from urllib import unquote
except ImportError:
# Python3
from urllib.parse import unquote

for i in range(0,500):
o=36*i
r=requests.get('http://www.barneys.com/barneys-new-york/men?start='+str(o)+'&format=page-element&sz=36')
soup=BeautifulSoup(r.text)
links=soup.find_all("a",{"class":"thumb-link"})
for link in links:
print(unquote(link.get('href')))
<小时/>

在Python3中link.get返回一个unicode str。在Python2中,link.get返回一个str字节,可以用utf-8解码得到unicode:

print(unquote(link.get('href')).decode('utf-8'))

关于python - Unicode 提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31326420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com