[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
python 区人气好低的~  
问题应该在prettytable 模块,这个模块我也不熟,没用过,不过我看了一下它 都5年没更新过了。
我的环境是python3.6。
把prettytable.py 第926行
改成:
  1. rows = self._rows[options["start"]:options["end"]]
复制代码
保存。他原来是deepcopy,我感觉没必要啊,我也不知道如何解释好- -
然后应该就可以跑了。

我还把你后面那段稍改了一下:
  1. tabl = PrettyTable(["日期", "天气","最高温度","最低温度","风向","风力"])
  2. templst=[list(dic.values()) for dic in lst]
  3. for i in range(7):
  4.     tabl.add_row(templst[i])
  5. print(tabl)
复制代码
其中你的变量名list  我改成了lst,因为list  是内建的列表类,用来作自定义的变量名不太好,虽然也能跑。

TOP

又改了一下,可以不用字典。
  1. import requests    # 导入爬虫模块
  2. from bs4 import BeautifulSoup  # 导入html代码解析模块
  3. from prettytable import PrettyTable # 导入整齐输出模块
  4. url = "http://www.weather.com.cn/weather/101210101.shtml"
  5. get_html = requests.get(url)    # 获取html源代码
  6. soure = BeautifulSoup(get_html.content,"html.parser")
  7. body = soure.find("body")        # 找到body标签
  8. div = body.find("div",id = "7d") # 找到div开头,并且属性有"id="7d""的标签
  9. ul = div.find("ul")    # 从 div开头并且属性有"id="7d""的标签 中找到ul标签
  10. li = ul.find_all("li") # 找到所有的li标签
  11. lst = [[i.find("h1").string,
  12.     i.find_all("p")[0].string,
  13.     i.find_all("p")[1].find("span").string+"℃",
  14.     i.find_all("p")[1].find("i").string,
  15.     i.find_all("p")[2].find("span")["title"],
  16.     i.find_all("p")[2].find("i").string] for i in li]
  17. table = PrettyTable(["日期", "天气","最高温度","最低温度","风向","风力"])
  18. for i in range(7):
  19.     table.add_row(lst[i])
  20. print(table)
复制代码
1

评分人数

TOP

返回列表