Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中使用URL解析检测URL解码_Python_Selenium_Selenium Webdriver_Decode_Ucs2 - Fatal编程技术网

Python中使用URL解析检测URL解码

Python中使用URL解析检测URL解码,python,selenium,selenium-webdriver,decode,ucs2,Python,Selenium,Selenium Webdriver,Decode,Ucs2,我已尝试解码URL(如果存在),但似乎不起作用: 下面显示的错误如下: 回溯(最近一次呼叫最后一次): 文件“E:\Users\Francbicon\Desktop\Bots\Master Copy\Shopee influent Loop.py”,第185行,在 clickpy() 文件“E:\Users\Francabicon\Desktop\Bots\Master Copy\Shopee influent Loop.py”,第75行,在clickpy中 打印(所有URL) UnicodeE

我已尝试解码URL(如果存在),但似乎不起作用:

下面显示的错误如下:

回溯(最近一次呼叫最后一次):
文件“E:\Users\Francbicon\Desktop\Bots\Master Copy\Shopee influent Loop.py”,第185行,在
clickpy()
文件“E:\Users\Francabicon\Desktop\Bots\Master Copy\Shopee influent Loop.py”,第75行,在clickpy中
打印(所有URL)
UnicodeEncodeError:“UCS-2”编解码器无法对878-878位置的字符进行编码:Tk中不支持非BMP字符
以下是全部代码:

从selenium导入webdriver
从selenium.webdriver.common.action\u链导入ActionChains
导入时间
从selenium.webdriver.common.action\u链导入ActionChains
从selenium.webdriver.support.ui导入WebDriverWait
从selenium.webdriver.common.by导入
从selenium.webdriver.support将预期的_条件导入为EC
从selenium.webdriver.common.keys导入密钥
导入csv
导入urllib.parse
导入时间
url='1〕https://shopee.com.my/search?keyword=mattress'
driver=webdriver.Chrome(executable_path=r'E:/users/Asashin/Desktop/Bots/others/chromedriver.exe')
获取驱动程序(url)
睡眠时间(0.8)
#选择语言
驱动程序。通过xpath('//div[@class=“language-selection\u list”]/button')查找元素。单击()
时间。睡眠(3)
#滚动几次以加载所有项目
def clickpy():
对于范围(10)内的x:
驱动程序.execute_脚本(“window.scrollBy(0300)”)
睡眠时间(0.1)
#获取所有链接(无需单击)
all_items=driver.find_elements_by_xpath('//a[@data sqe=“link”]”)
所有URL=[]
s=[“-Dr.Alstone-”,“-Dr.Alstone-”,“-Lutfy Paris-”]
对于所有_项目中的项目:
#这将为您提供锚定标记的整个url
url=item.get_属性('href')
如果url中出现“-Dr.Alstone-”:
持续
其他:
如果url中出现“-Dr.-Alstone-”:
持续
其他:
如果url中有“/Dr.Alstone-”:
持续
其他:
如果url中有“-Simoni-”:
持续
其他:
如果url中有“-Lütfy-”:
持续
其他:
#您需要删除前面的值,以便稍后验证href以供单击
urlfail=url.split('https://shopee.com.my')[1]
c=urllib.parse.unquote(urlfail)
所有URL.append(c)
打印(所有URL)
a=len(所有URL)
打印('len:'+str(a))
这里是我尝试过的一件事:尝试和例外,如果其他和正常的循环,但它似乎没有很好的工作。错误不断地出现


如何修复它?

您的代码在我的机器上运行良好。具有以下输出:


['/-独家免费送货-卧铺-基本-8-床垫-皇后-国王-增强型-HD-Foam-Tech-US-Aus-Euro-Export-QUOTE-QUOTE-QUOTE-QUOTE-QUOTE-REQUOTE-QUOTE-QUOTE-QUOTE-King-END-US-Aus-Euro-Export-QUOTE-QUOTE-QUOTE-QUOTE-QUOTE-QUOTE-QUOTE-QUOTE-QUOTE-i.21713131670.6614097006','//防褥疮-防褥疮-防褥疮-泵-QUOTE-QUOTE-QUOTE-QUOTE-QUOTE-QUOT,'/(有限交易)-Macio-Spinopedic-Queen-Size-床垫-i.132909000.2005518495',“/床垫-9CM-厚-天然乳胶-Tilam-Tatami-床垫-折叠床垫-i.170335123.2765865311',”/榻榻米-床垫-Tilam-9CM-厚-棉床垫-单皇后床垫-折叠床垫-i.170335123.2765935029',“/榻米床垫-折叠床垫-Tilam床垫-单皇后床垫s-i.155066435.2759640258','/(有限交易)-Dr.Macio-Spinopedic-Headt-Direct-Export-to-Germany-Single-Size-i.132909000.2005659513','/如果这是完整代码,那么什么时候运行
clickpy()
?我在代码中没有看到它,但错误显示它有问题。当我运行
clickpy()时
然后它就可以在Linux上正常工作。可能问题不在于代码,而在于您运行它所使用的工具。我看到
Tk
有错误。您是使用
Tk
tkinter
还是使用
tkinter
(使用
Tk
)的
IDLE
?如果您直接在控制台或使用其他编辑器/IDE(即PyCharm)运行它,它可能会正常工作@furas我不使用任何tk这是一个用于获取url链接的selenium webdriver robot,但我最近添加了“import urllib.parse”然后错误出现了。打印列表
所有url
中的一个链接有问题-您可以使用
for
-循环分别打印每个url,以查看哪个url有问题。您可以在使用
urllib.parse.unquote()之前打印url-也许它会显示更多内容。您还可以使用
打印(repl(url))
它应该使用十六进制代码而不是ascii字符。什么版本的Ubuntu?什么版本的Python?