以上代码执行包错如下:[root@localhost pythoncaiji]# python bing.py File "bing.py", line 4 SyntaxError: Non-ASCII character '\xe8' in file bing.py on line 4, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
时间: 2024-02-23 07:57:20 浏览: 67
CentOS7运行.sh脚本提示syntax error: unexpected end of file的解决方法
5星 · 资源好评率100%
这个错误通常是由于 Python 解释器无法确定源代码文件的编码方式引起的。要解决这个问题,我们可以在 Python 源文件的第一行添加一个特殊的注释,称为“coding 注释”,指定编码方式。例如,如果你的源代码文件使用 UTF-8 编码,可以在第一行添加以下注释:
```python
# -*- coding: utf-8 -*-
```
这样,Python 解释器就会在读取源代码文件时,自动将其中的文本内容解码为 UTF-8 编码的 Unicode 字符串。请注意,这个注释必须是源代码文件的第一行,且前面不能有任何其他内容(包括注释),否则 Python 解释器可能无法识别。
因此,你可以将代码的第一行修改为:
```python
# -*- coding: utf-8 -*-
import requests
from bs4 import BeautifulSoup
# 读取搜索关键词列表
with open("key.txt", "r", encoding="utf-8") as f:
keywords = f.read().splitlines()
# 构造搜索页面的 URL
url_template = "https://cn.bing.com/search?q={}&go=Search&qs=ds&form=QBRE"
# 构造 HTTP 请求头部
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"
}
# 遍历关键词列表,依次搜索并采集相关搜索词
for keyword in keywords:
url = url_template.format(keyword) # 构造搜索页面的 URL
response = requests.get(url, headers=headers) # 发送 GET 请求获取页面内容
soup = BeautifulSoup(response.text, "html.parser") # 解析 HTML 页面
# 获取相关搜索词列表的父元素
related_searches = soup.select(".b_rs")
if len(related_searches) > 0:
related_searches = related_searches[0].find_all("li") # 获取每个相关搜索词的 li 元素
# 将相关搜索词写入文件
with open("xg.txt", "a", encoding="utf-8") as f:
f.write(f"相关搜索词:{keyword}\n")
for r in related_searches:
f.write(r.text + "\n")
f.write("\n")
```
这样应该就可以正常执行了。
阅读全文