url中的波斯语字符并使用python urlopen()方法

2024-09-27 09:29:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要帮助将非ascii url编码/解码为适当的形式,以提供urlopen()方法。我的代码,用于从页面抓取url(非ascii url)并转到下一页:

from urllib.request import urlopen
from bs4 import BeautifulSoup

Enterance url从chrome浏览器粘贴的副本:

^{pr2}$

但我有个错误:

'ascii' codec can't encode characters in position 5-9: ordinal not in range(128)

当我检查“UnicodeEncodeError”时,我看到了以下通知:

----> 8     html = urlopen(url)

如您所知,在第一个循环中,urlopen()方法可以与“entrance url”一起使用,因为它的形式是:

https://www.sheypoor.com/%DA%A9%D9%85%D8%AF-%D9%86%D9%88%D8%AC%D9%88%D8%A7%D9%86-34926671.html

但是当从BeautifulSoup对象中刮取的url_obj的形式是

https://www.sheypoor.com/سرویس-تخت-کمد-نوجوان-44887762.html

替换为旧的url,并且此表单不适合馈送到urlopen()方法:

我试图找到将我的url_对象转换为正确的url形式(如entrance url)的解决方案,但我失败了!:-(

我将非常高兴你的支持和指导解决这个问题。在


Tags: 方法infromhttpsimportcomurlhtml

热门问题