python爬取知乎live_python爬虫——xml数据爬取
回想去年写毕业论文时候需要数据,虽然数据量不大,但是手工录入,也是颇费眼神。现在自学了Python,就拿曾经的需求当做案例吧!
爬取目标:最近20年每个月的仔猪价格,生猪价格和猪肉价格
爬取软件:python 3.7.2 IDE:PyCharm
爬取包:requests, pandas ,lxml, time
打开如下部分:
打开检查,如下图
很好,数据就在最后的大红框里面,分别对应着时间和价格。有前端基础一眼就能看出这是一个xml文档.html为树结构,xml也是树结构,因此我们可以像解析html一样解析xml。到这里我们就可以爬取仔猪价格数据了。
还有生猪价格和猪肉价格没爬取呢,别急,看一下网址构造:
发现这个链接变化之处有两个地方,因此可以构建一个dict以构造多个URL。循环每个URL,请求,解析,存储为bj_prok.xlsx
pigdata ={'smallpig':1565318072807,'livepig':1565327925160,'pork':1565328013572}
最终爬取效果(展示部分):
全部代码如下:
import requests
from lxml import etree
import pandas as pd
import time
#构造字典
pigdata ={'smallpig':1565318072807,'livepig':1565327925160,'pork':1565328013572}
#构造函数get_info,解析网页
def get_info(link):
#请求url
res = requests.get(url)
#转换类型
html = etree.HTML(res.text)
#解析属性值,用@属性
date = html.xpath('//*[@name="2000"]/point/@name')
prices = html.xpath('//*[@name="2000"]/point/@y')
#返回日期和价格
return date,prices
i=1
#遍历字典pigdata,同时遍历键和值
for pigtype,pignum in pigdata.items():
#构造url
url = 'http://www.caaa.cn/market/trend/local/xml/2-1-{type}.xml?&XMLCallDate={num}'.format(type=pigtype,num=pignum)
# print(url)
#调用函数get_info
pigs = get_info(url)
if i ==1:
small_pig = pd.DataFrame({'时间': pigs[0], '仔猪价格(元/千克)': pigs[1]}, index=range(1, len(pigs[0]) + 1))
elif i==2:
live_pig = pd.DataFrame({'活猪价格(元/千克)': pigs[1]}, index=range(1, len(pigs[0]) + 1))
else:
pig = pd.DataFrame({'猪肉价格(元/千克)': pigs[1]}, index=range(1, len(pigs[0]) + 1))
i+=1
#控制循环时间,3秒循环一次
time.sleep(3)
#pandas合并DataFrame
pork = pd.concat([small_pig,live_pig,pig],axis=1)
print(pork)
#存储到硬盘
pork.to_excel('bj_pork.xlsx')
谢谢大家,请多指教!
python爬取知乎live_python爬虫——xml数据爬取相关推荐
- python爬取知乎live_Python爬虫 - 简单抓取百度指数
前言有点忙,没空写东西,这是之前写的,加了些配图而已 这次要爬的网站是百度指数 正文 一.分析 打开网站(百度指数),呈现出来是这样的 如果搜索的话就需要登陆了,如果没有什么特别频繁的请求的话,直接登 ...
- python爬取知乎live_Python爬虫从入门到放弃(十九)之 Scrapy爬取所有知乎用户信息(下)...
classZhihuSpider(scrapy.Spider): name= "zhihu"allowed_domains= ["www.zhihu.com"] ...
- Python爬虫——Ajax数据爬取
前言 有时候我们在用requests抓取页面的时候,得到的结果可能和在浏览器中看到的不一样,在浏览器中可以看到正常显示的页面数据,但使用requests得到的结果并没有.这是因为在requests获得 ...
- python爬虫之数据爬取项目实例
python爬虫之数据爬取项目实例 一.scrapy数据爬取 (一)前期准备 (二)目标: (三)步骤: 1.创建项目: 2.创建爬虫: 3.打开项目: 4.创建启动程序: 5.编写爬虫: 6.启动测 ...
- 「docker实战篇」python的docker-打造多任务端app应用数据抓取系统(下)(35)
上次已经把python文件挂载到虚拟机上了,这次主要设置下虚拟机通过docker容器的方式. 运行 python 代码运行 >启动一个crt的会话 docker run -it -v /root ...
- 22.网络爬虫—APP数据抓取详讲
网络爬虫-APP数据抓取详讲 Fiddler 工作原理 安装完成Fiddler后的配置 前提条件 工具配置 手机数据抓取 Fiddler手机端配置 手机端操作 实战演示 后记 前言:
- 高校新闻抓取分析之百度新闻篇---数据抓取
高校新闻抓取分析之百度新闻篇-数据抓取 tips: 本文代码使用python3编写 代码仓库 使用urllib抓取数据 百度新闻网页界面分析 在我读大学的时候(18年前),百度新闻还能基于新闻标题或者 ...
- python 定时自动爬取_python实现scrapy爬虫每天定时抓取数据的示例代码
1. 前言. 1.1. 需求背景. 每天抓取的是同一份商品的数据,用来做趋势分析. 要求每天都需要抓一份,也仅限抓取一份数据. 但是整个爬取数据的过程在时间上并不确定,受本地网络,代理速度,抓取数据量 ...
- python爬取收费素材_Python爬虫练习:爬取素材网站数据
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 在工作中的电子文案.ppt,生活中的新闻.广告,都离不开大量的素材,而素材 ...
最新文章
- R语言进行主成分分析(PCA):使用prcomp函数来做主成分分析、使用summary函数查看主成分分析的结果、计算每个主成分解释方差的、每个主成分解释的方差的比例、以及多个主成分累积解释的方差比例
- google浏览器插件安装时出错,Package is invalid: CRX HEADER INVALID
- Linux 虚拟化网络技术 — 虚拟二层网卡(Tap)与虚拟三层隧道网卡(Tun)
- 【jzoj】2018.2.5NOIP普及组——C组模拟赛
- Problem G. Graph 2015-2016 acmicpc neerc 拓扑排序模拟
- Python 列表list与数组array的区别
- android 三个点按钮实现_Android 常用侧滑栏实现
- 华中科技大学计算机学院考研大纲,2021华中科技大学考研大纲参考书目汇总
- 跨平台开源通讯组件elastic communication
- 3-24Pytorch与张量变形
- CentOS 7 重装mysql编译过程报错解决方法
- java nextprime_中国MOOC_零基础学Java语言_第7周 函数_1分解质因数
- yandex 插件_Yandex Metrika的Vue插件
- 5.12 利用图层蒙版制作图像合成特效 [原创Ps教程]
- 度度熊保护村庄 HDU - 6080 floyd最小环/叉积判左右
- webbug靶场-渗透基础
- nexus9刷机全记录
- 阿里云服务器部署学习笔记
- DBeaver解决连接Oracle之后出现库名为数字问题
- Dremel和Hadoop