运行这段代码import requests from bs4 import BeautifulSoup import pprint import json def download_all_htmls(): """ 下载所有列表页面的HTML,用于后续的分析 """ htmls=[] for idx in range(24): url=f"https://www.utusan.com.my/page/{idx+1}" print("craw heml:",url) r=requests.get(url) if r.status_code !=250: raise Exception("error") htmls.append(r.text) return htmls htmls=download_all_htmls() htmls[0],并找出错误优化代码
时间: 2024-03-07 22:52:31 浏览: 87
python调试文件时发生import requests报错.doc
5星 · 资源好评率100%
这段代码中有几个错误需要优化:
1. 在判断请求状态码时,应该是 `if r.status_code != 200:` 而不是 `if r.status_code != 250:`。
2. 在函数 `download_all_htmls()` 中,`return htmls` 应该在 for 循环外面,而不是在循环内部。否则,只会下载第一个页面的 HTML。
优化后的代码如下:
```
import requests
from bs4 import BeautifulSoup
import pprint
import json
def download_all_htmls():
"""下载所有列表页面的HTML,用于后续的分析"""
htmls = []
for idx in range(24):
url = f"https://www.utusan.com.my/page/{idx+1}"
print("craw html:", url)
r = requests.get(url)
if r.status_code != 200:
raise Exception("error")
htmls.append(r.text)
return htmls
htmls = download_all_htmls()
print(htmls[0])
```
阅读全文