我想编写一个解析器,它可以从站点中提取信息并将其保存到文档中。我决定使用这篇 Habr 文章: https ://habr.com/ru/post/280238/
它包含以下代码:
import requests
user_id = 12345
url = 'http://www.kinopoisk.ru/user/%d/votes/list/ord/date/page/2/#list' % (user_id) # url для второй страницы
r = requests.get(url)
with open('test.html', 'w') as output_file:
output_file.write(r.text.encode('cp1251'))
我复制了第一行代码,但在与我要解析的站点一起使用时出现错误。链接到该网站(如果它很重要):https://ru.investing.com/stock-screener/?sp=country::5|sector::a|industry::a|equityType::a|exchange: : 2%3Ceq_market_cap;1
因此,问题是:
如果你只是愚蠢地从 Habr 复制代码,替换你的 URL,它会给出以下错误:“ValueError: unsupported format character 'C' (0x43) at index 104” in the line url = "" % (user_id). 这个错误是什么意思,我不明白。
因为在这种情况下,我不明白 habr 示例中第三行的作用(对我来说,这是将页面地址除以用户 ID 的剩余部分分配给 url 变量,如果它告诉我的真正含义,我将不胜感激这一行),我决定将代码更改为以下内容:
import requests url = 'https://ru.investing.com/stock-screener/? sp=country::5|sector::a|industry::a|equityType::a|exchange::2%3Ceq_market_cap;1' r = requests.get(url) with open('test.html', 'w') as output_file: output_file.write(r.text.encode('cp1251'))
并且此代码引发错误“TypeError:write() 参数必须是 str,而不是字节”
最后,我请你帮我处理这个马戏团。提前致谢。
这是这里的一个常见错误。不是所有的字符
UTF-8都可以写成cp1251。将文件按原样写入UTF-8,然后即使Windows没有任何问题,您也可以安全地读取它。PS 看来文本已经在那里编码了
cp1251,不需要再次重新编码。