回想去年写毕业论文时候需要数据,虽然数据量不大,但是手工录入,也是颇费眼神。现在自学了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数据爬取相关推荐

  1. python爬取知乎live_Python爬虫 - 简单抓取百度指数

    前言有点忙,没空写东西,这是之前写的,加了些配图而已 这次要爬的网站是百度指数 正文 一.分析 打开网站(百度指数),呈现出来是这样的 如果搜索的话就需要登陆了,如果没有什么特别频繁的请求的话,直接登 ...

  2. python爬取知乎live_Python爬虫从入门到放弃(十九)之 Scrapy爬取所有知乎用户信息(下)...

    classZhihuSpider(scrapy.Spider): name= "zhihu"allowed_domains= ["www.zhihu.com"] ...

  3. Python爬虫——Ajax数据爬取

    前言 有时候我们在用requests抓取页面的时候,得到的结果可能和在浏览器中看到的不一样,在浏览器中可以看到正常显示的页面数据,但使用requests得到的结果并没有.这是因为在requests获得 ...

  4. python爬虫之数据爬取项目实例

    python爬虫之数据爬取项目实例 一.scrapy数据爬取 (一)前期准备 (二)目标: (三)步骤: 1.创建项目: 2.创建爬虫: 3.打开项目: 4.创建启动程序: 5.编写爬虫: 6.启动测 ...

  5. 「docker实战篇」python的docker-打造多任务端app应用数据抓取系统(下)(35)

    上次已经把python文件挂载到虚拟机上了,这次主要设置下虚拟机通过docker容器的方式. 运行 python 代码运行 >启动一个crt的会话 docker run -it -v /root ...

  6. 22.网络爬虫—APP数据抓取详讲

    网络爬虫-APP数据抓取详讲 Fiddler 工作原理 安装完成Fiddler后的配置 前提条件 工具配置 手机数据抓取 Fiddler手机端配置 手机端操作 实战演示 后记 前言:

  7. 高校新闻抓取分析之百度新闻篇---数据抓取

    高校新闻抓取分析之百度新闻篇-数据抓取 tips: 本文代码使用python3编写 代码仓库 使用urllib抓取数据 百度新闻网页界面分析 在我读大学的时候(18年前),百度新闻还能基于新闻标题或者 ...

  8. python 定时自动爬取_python实现scrapy爬虫每天定时抓取数据的示例代码

    1. 前言. 1.1. 需求背景. 每天抓取的是同一份商品的数据,用来做趋势分析. 要求每天都需要抓一份,也仅限抓取一份数据. 但是整个爬取数据的过程在时间上并不确定,受本地网络,代理速度,抓取数据量 ...

  9. python爬取收费素材_Python爬虫练习:爬取素材网站数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 在工作中的电子文案.ppt,生活中的新闻.广告,都离不开大量的素材,而素材 ...

最新文章

  1. R语言进行主成分分析(PCA):使用prcomp函数来做主成分分析、使用summary函数查看主成分分析的结果、计算每个主成分解释方差的、每个主成分解释的方差的比例、以及多个主成分累积解释的方差比例
  2. google浏览器插件安装时出错,Package is invalid: CRX HEADER INVALID
  3. Linux 虚拟化网络技术 — 虚拟二层网卡(Tap)与虚拟三层隧道网卡(Tun)
  4. 【jzoj】2018.2.5NOIP普及组——C组模拟赛
  5. Problem G. Graph 2015-2016 acmicpc neerc 拓扑排序模拟
  6. Python 列表list与数组array的区别
  7. android 三个点按钮实现_Android 常用侧滑栏实现
  8. 华中科技大学计算机学院考研大纲,2021华中科技大学考研大纲参考书目汇总
  9. 跨平台开源通讯组件elastic communication
  10. 3-24Pytorch与张量变形
  11. CentOS 7 重装mysql编译过程报错解决方法
  12. java nextprime_中国MOOC_零基础学Java语言_第7周 函数_1分解质因数
  13. yandex 插件_Yandex Metrika的Vue插件
  14. 5.12 利用图层蒙版制作图像合成特效 [原创Ps教程]
  15. 度度熊保护村庄 HDU - 6080 floyd最小环/叉积判左右
  16. webbug靶场-渗透基础
  17. nexus9刷机全记录
  18. 阿里云服务器部署学习笔记
  19. DBeaver解决连接Oracle之后出现库名为数字问题
  20. Dremel和Hadoop

热门文章

  1. ios开发之.pch文件的使用
  2. 微软MIX11大会第一天主旨以及新产品发布总结
  3. android TextView下划线,圆角边框,数逐字显示,虚线边框, 渐变色背景框, 阴影背景框
  4. IIS Service Unavailable问题
  5. csv mysql_将csv的数据导入mysql
  6. 淘宝开发平台 java 调用实例
  7. 第四章 虚拟机的安装和使用
  8. pmtk3怎样离线安装
  9. php gzip 关闭,Thinkphp 关闭Gzip header输出问题
  10. 自定义背景_新版快绘精选:自定义背景墙 | 吊顶 | 云渲染滤镜升级