一、爬取目标
二、完整源码
#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
#
# Copyright (c) 2024 愤怒的it男, All Rights Reserved.
# FileName : code.py
# Date : 2024.02.29
# Author : 愤怒的it男
# Version : 1.0.0
# Node : 欢迎关注微信公众号【愤怒的it男】
#
#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
import csv
from lxml import etree
import requests
from tabulate import tabulate
def getData(u, h):
response = requests.get(url=u, headers=h)
html = etree.HTML(response.text)
date = html.xpath("//p[@class='tips']/text()")[0]
items = html.xpath("//table[@id='table']/tbody/tr")
data = []
for item in items:
name = item.xpath("td[1]/text()")[0]
p0 = item.xpath("td[2]/text()")[0]
p92 = item.xpath("td[3]/text()")[0]
p95 = item.xpath("td[4]/text()")[0]
p98 = item.xpath("td[5]/text()")[0]
data.append([name,p0,p92,p95,p98])
return {'date':[date], 'data':data}
def printData(d):
print(d['date'])
headers = [ "地区", "#92号汽油", "#95号汽油", "#98号汽油", "#0号柴油"]
table = tabulate(d['data'], headers=headers, tablefmt='grid')
print(table)
def saveData(d):
with open('今日油价查询.csv', 'w', encoding='utf-8', newline='') as file:
writer = csv.writer(file)
writer.writerow(d['date'])
headers = [ "地区", "#92号汽油", "#95号汽油", "#98号汽油", "#0号柴油"]
writer.writerow(headers)
writer.writerows(d['data'])
def main():
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',}
url = 'https://www.iamwawa.cn/oilprice.html'
result = getData(url, headers)
printData(result)
saveData(result)
if __name__== "__main__" :
main()
三、爬取结果
['最后更新于:2024-02-29 01:15:02']
+--------+-------------+-------------+-------------+------------+
| 地区 | #92号汽油 | #95号汽油 | #98号汽油 | #0号柴油 |
+========+=============+=============+=============+============+
| 北京 | 7.82 | 8.33 | 9.83 | 7.54 |
+--------+-------------+-------------+-------------+------------+
| 上海 | 7.79 | 8.29 | 9.39 | 7.47 |
+--------+-------------+-------------+-------------+------------+
| 江苏 | 7.79 | 8.29 | 9.81 | 7.45 |
+--------+-------------+-------------+-------------+------------+
| 天津 | 7.82 | 8.26 | 9.69 | 7.49 |
+--------+-------------+-------------+-------------+------------+
| 重庆 | 7.89 | 8.33 | 9.39 | 7.56 |
+--------+-------------+-------------+-------------+------------+
| 江西 | 7.78 | 8.36 | 9.86 | 7.54 |
+--------+-------------+-------------+-------------+------------+
| 辽宁 | 7.97 | 8.48 | 9.24 | 7.39 |
+--------+-------------+-------------+-------------+------------+
| 安徽 | 7.78 | 8.32 | 9.34 | 7.53 |
+--------+-------------+-------------+-------------+------------+
| 内蒙古 | 7.76 | 8.28 | 9.09 | 7.36 |
+--------+-------------+-------------+-------------+------------+
| 福建 | 7.79 | 8.32 | 9.32 | 7.48 |
+--------+-------------+-------------+-------------+------------+
| 宁夏 | 7.72 | 8.16 | 9.31 | 7.37 |
+--------+-------------+-------------+-------------+------------+
| 甘肃 | 7.82 | 8.35 | 8.92 | 7.39 |
+--------+-------------+-------------+-------------+------------+
| 青海 | 7.78 | 8.34 | 9.09 | 7.41 |
+--------+-------------+-------------+-------------+------------+
| 广东 | 7.84 | 8.5 | 10.5 | 7.5 |
+--------+-------------+-------------+-------------+------------+
| 山东 | 7.79 | 8.35 | 9.07 | 7.4 |
+--------+-------------+-------------+-------------+------------+
| 广西 | 7.88 | 8.52 | 9.66 | 7.55 |
+--------+-------------+-------------+-------------+------------+
| 山西 | 7.77 | 8.39 | 9.09 | 7.56 |
+--------+-------------+-------------+-------------+------------+
| 贵州 | 7.95 | 8.4 | 9.3 | 7.59 |
+--------+-------------+-------------+-------------+------------+
| 陕西 | 7.71 | 8.14 | 10.69 | 7.38 |
+--------+-------------+-------------+-------------+------------+
| 海南 | 8.94 | 9.49 | 10.75 | 7.58 |
+--------+-------------+-------------+-------------+------------+
| 四川 | 7.92 | 8.46 | 9.2 | 7.54 |
+--------+-------------+-------------+-------------+------------+
| 河北 | 7.82 | 8.26 | 9.08 | 7.49 |
+--------+-------------+-------------+-------------+------------+
| 西藏 | 8.7 | 9.2 | 10.26 | 8.03 |
+--------+-------------+-------------+-------------+------------+
| 河南 | 7.83 | 8.36 | 9.02 | 7.48 |
+--------+-------------+-------------+-------------+------------+
| 新疆 | 7.65 | 8.18 | 9.11 | 7.27 |
+--------+-------------+-------------+-------------+------------+
| 黑龙江 | 7.85 | 8.38 | 9.51 | 7.33 |
+--------+-------------+-------------+-------------+------------+
| 吉林 | 7.79 | 8.4 | 9.15 | 7.41 |
+--------+-------------+-------------+-------------+------------+
| 云南 | 7.97 | 8.56 | 9.24 | 7.56 |
+--------+-------------+-------------+-------------+------------+
| 湖北 | 7.84 | 8.39 | 9.7 | 7.48 |
+--------+-------------+-------------+-------------+------------+
| 浙江 | 7.79 | 8.29 | 9.79 | 7.47 |
+--------+-------------+-------------+-------------+------------+
| 湖南 | 7.77 | 8.26 | 9.06 | 7.56 |
+--------+-------------+-------------+-------------+------------+
四、免责声明
本文所涉及源代码均为个人学习所编写,并于公众号(愤怒的it男)中原创发布,仅可用于计算机技术学习及研究等合法行为,禁止利用本文所涉及源代码从事任何违反本国(地区)法律法规的业务,如有发现存在违法违规行为我会举报到网监部门。
原文始发于微信公众号(愤怒的it男):Python爬虫|实时采集全国油价
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/234275.html