-
Notifications
You must be signed in to change notification settings - Fork 920
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TorrentSpider添加encoding key #3584
Conversation
@zhzero-hub 麻烦提供一下具体站点场景 |
比如这种: <title>Mikan</title> Mikan is a CHINESE Public torrent tracker for ANIME https://maouzhkami.xyz/ en-US search 所有xml中返回带encoding的都会有问题 |
原始编码是什么? |
原始编码就是utf-8,这个和内容的原始编码无关,get_decoded_html_content是能解码出来的 |
粘贴一个来自gpt的回答: 问题原因 字节对象(bytes)。
PyQuery 会抛出上述错误。 |
请问该问题属于回归测试问题(原来是好的,因该mr产生的乱码),还是属于新站点适配问题。 |
|
谢谢提供详细说明。这种情况下,设置indexer的encoding字段为false即可,即直接走html_doc = PyQuery(html_text)的逻辑,不再需要重新进行encode,lxml解析html有独立的代码,支持探测编码方式。
但由于我无法判断加入换行是否会对已有站点解析产生影响,因此选择了加入一个字段来判断,保证原有运行逻辑正常 |
TorrentSpider在使用PyQuery解析xml时,如果xml含有“encoding=xxx”字段,会因为xml的encoding问题报错,这个问题可以通过将传给PyQuery的html_text重新进行编码解决,即html_doc = PyQuery(html_text) -> html_doc = PyQuery(html_text.encode('utf-8'))
因此给indexer添加一个encoding字段,当其为True时进行encode,同时默认为False避免对已有代码产生影响