【爬虫案例】动态地图里的数据如何抓取:以全国PPP综合信息平台网站为例  http://mp.weixin.qq.com/s/BXWTf5hmq8vp91ZvgaphEw

【爬虫案例】动态页面的抓取!以东方财富网基金行情数据为例   http://mp.weixin.qq.com/s/bbw5caz4EfJn5mwbDMVfuQ

【爬虫案例】获取历史天气数据   http://mp.weixin.qq.com/s/MlqJUuH0JjTujMzGJp_7kw

【爬虫案例】电影票房数据抓取   https://mp.weixin.qq.com/s/UgH53P86Y0nfY-67EDQ8wA

#####http://www.lishi.tianqi.com/yangzhong/201407.html

#####http://lishi.tianqi.com/yangzhong/201407.html

#####www.cbooo.cn/year?year=2016

#####www.cpppc.org:8082/efmisweb/ppp/projectLibrary/toPPPMap.do

#####fundact.eastmoney.com/banner/gp.html?from=groupmessage&isappinstalled=0

#

#http://lishi.tianqi.com/yangzhong/201407.html

##################################################################

##############爬取票房纪要

#####www.cbooo.cn/year?year=2016

1、确认搜的票房数据在代码里(Ctrl+F搜索出来)搜索关键字:如"美人鱼",是否在页面上

2、模板(对于数据在页面上适用):获取页面/解析网页

3、找到数据在哪?定位数据首选用id定位

4、返回列表的话找对应的项

#########采用解析器:'lxml',解析页面;也可以用html.parse解析器

分析数据在哪个框里面,这是一个table,定位方式首选用id定位

soup.find_all 找到所有table,限制条件为id=tbContent

里面每一个tr代表一行,一个电影即为一行,找到所有tr标签

td表示当中的每一个单元,找出当中第一个中的a标签中的title属性即为需要的电影名称

dd与dl是现在很少用的标签,表示为定义式,有点类似于字典

import requests ############获取页面

from bs4 import BeautifulSoup  ############解析网页

year=2017

url='http://www.cbooo.cn/year?year='+str(year)

rawhtml=requests.get(url).content

print(type(rawhtml))

soup=BeautifulSoup(rawhtml,'lxml') #########采用解析器:'lxml',解析页面;也可以用html.parse解析器

###soup.select('dl.dltext dd')

###有快捷的方式:能把所有标签去掉,soup.select('dl.dltext dd')[0].get_text()

def getYear(year):

#year=2017

url='http://www.cbooo.cn/year?year='+str(year)

rawhtml=requests.get(url).content

#print(type(rawhtml))

soup=BeautifulSoup(rawhtml,'lxml') #########采用解析器:'lxml',解析页面;也可以用html.parse解析器

#print(type(soup))

return soup

def getInfo(url):

rawhtml=requests.get(url).content

soup=BeautifulSoup(rawhtml,'lxml')

return soup

print(type(soup))

movies_table=soup.find_all('table',{'id':"tbContent"})[0]  ####用find_all()方法,通过table标签,加上字典参数,属性为id=tbContent

movies=movies_table.find_all('tr')

moviename=[movie.find_all('td')[0].a.get('title') for movie in movies[1:]]

movielink=[movie.find_all('td')[0].a.get('href') for movie in movies[1:]]

movietype=[movie.find_all('td')[1].string for movie in movies[1:]]

movieboxoffice =[int(movie.find_all('td')[2].string) for movie in movies[1:]]

#moviedirector=[getInfo(url).find_all('dl',{'class':'dltext'})[0].find_all('dd')[0].a.get('title') for url in movielink]

moviedirector=[getInfo(url).select('dl.dltext dd')[0].get_text() for url in movielink]

############转成数据框&统计分析

import pandas as pd

df=pd.DataFrame({'names':moviename,'types':movietype,'boxoffice':movieboxoffice,'link':movielink,'directors':moviedirector})

import numpy as np

df.groupby('types').agg({'boxoffice':["count","mean"]})

#############写到文件中

df.to_csv(r'C:\Users\Administrator\Desktop\电影.csv')

标签是div,div在html中意思为一个块集

确认html页面真的存在代码中

确认数据在代码中,即好爬,如果不在代码中,用js进行渲染,即不好爬

再看有没有翻页,没有翻页,即OK

这里以一个电影评分的网站为例,介绍数据抓取的基本流程和方法。

标准配置:

--requests:抓取网址的HTML内容

--BeautifulSoup:解析HTML源码,提供方便的查询接口

--re:正则表达式,通过描述规则从字符中提取需要的数据

(这里不作介绍)

import requests  ########获取页面

from  bs4 import BeautifulSoup  #######解析网页

url='http://www.cbooo.cn/year?year=2016'

rawhtml=requests.get(url).content   #######获取内容

##################################################################

##############爬取天气纪要

###############http://www.tianqihoubao.com/weather/top/shenzhen.html

##############数据抓取:

##############某些情况下需要从网络抓取数据,比如舆情监控需要抓取相关的新闻内容;

##############判断天气原因是否对超市的销量有影响时,除了已有的销量数据外还需要从

##############网络抓取每日的天气数据

1、下载的url数据

2、在谷歌浏览器右键:检查,找到每一行数据在不在网页代码中,找到整个下载数据是个table,tblite_go

3、一页一页加载时,发现问题:网址未发生变化,没有刷新

1)打开network,点击每一页时发现Request URL不一致,此时表明为异步加载;

2)将不同页的链接复制出来,查看区别;

3)找到规律,将链接查看,即对应数据;

4)由于r.content为乱码,r.text为中文格式;

5)解析;

6)每一页写入;

import requests ############获取页面

from bs4 import BeautifulSoup  ############解析网页

url='http://www.tianqihoubao.com/weather/top/shenzhen.html'

rawhtml=requests.get(url).content

weatherhtml=BeautifulSoup(rawhtml,'lxml')

dateset=[weather.find_all('td')[1].b.a.string for weather in weatherhtml.find_all('table')[0].find_all('tr')[2:]]

dayweatherset=[weather.find_all('td')[2].string for weather in weatherhtml.find_all('table')[0].find_all('tr')[2:]]

daywindset=[weather.find_all('td')[3].string for weather in weatherhtml.find_all('table')[0].find_all('tr')[2:]]

daytempset=[weather.find_all('td')[4].string for weather in weatherhtml.find_all('table')[0].find_all('tr')[2:]]

nightweatherset=[weather.find_all('td')[5].string for weather in weatherhtml.find_all('table')[0].find_all('tr')[2:]]

nightwindset=[weather.find_all('td')[6].string for weather in weatherhtml.find_all('table')[0].find_all('tr')[2:]]

nighttempset=[weather.find_all('td')[7].string for weather in weatherhtml.find_all('table')[0].find_all('tr')[2:]]

import pandas as pd

df=pd.DataFrame({'日期':dateset,'白天天气':dayweatherset,'白天风向':daywindset,'白天温度':daytempset,'晚上天气':nightweatherset,'晚上风向':nightwindset,'晚上温度':nighttempset})

import numpy as np

df.to_csv(r'C:\Users\Administrator\Desktop\天气.csv')

python windows自动化 爬虫_python自动化之爬虫原理及简单案例相关推荐

  1. python归一化 增大差异_Python逻辑回归模型原理及实际案例应用

    前言 上面我们介绍了线性回归, 岭回归, Lasso回归, 今天我们来看看另外一种模型-"逻辑回归". 虽然它有"回归"一词, 但解决的却是分类问题 目录 1. ...

  2. python面向对象三大特性_Python面向对象之多态原理与用法案例分析

    本文实例讲述了Python面向对象之多态原理与用法.分享给大家供大家参考,具体如下: 目标 多态 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 定义类的准则 继承 ...

  3. python自动办公知识点_Python自动化办公知识点整理汇总|简明python教程|python入门|python教程...

    https://www.xin3721.com/eschool/pythonxin3721/ 知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? ​ 这可能是很多非IT职场人士面临的困 ...

  4. python异步爬虫_Python实战异步爬虫(协程)+分布式爬虫(多进程)

    转自:https://blog.csdn.net/SL_World/article/details/86633611 在讲解之前,我们先来通过一幅图看清多进程和协程的爬虫之间的原理及其区别.(图片来源 ...

  5. python 百度文库 签到_Python百度文库爬虫终极版

    百度文库爬虫 我们在开始爬虫之前,首先要了解网页的信息和结构,然后获取请求的url和参数(payloads)来得到所要的数据并处理.接下来我们根据: 一.网页分析 二.爬虫编写 三.运行与结果 四.程 ...

  6. python timer怎么用_python定时器(Timer)用法简单实例

    python定时器(Timer)用法简单实例 本文实例讲述了python定时器(Timer)用法.分享给大家供大家参考.具体如下: # encoding: UTF-8 import threading ...

  7. python爬取网易云音乐_python爬取网易云音乐简单案例

    首先找到想要下载的歌曲表单,例如: 打开推荐 点击推荐的歌曲表单 接下来我们尝试爬取这个表单的全部歌曲名,及歌曲的MP3地址 我使用fiddler4抓包工具抓取相关信息 #encoding=utf8 ...

  8. python画五角星代码_Python GUI 编程tkinter--画五角星和简单的动画制作

    1.利用Python的tkinter画一个五角星: 2.做一个简单的动画 分析五角心的五个顶点的坐标: 确立五角星的中心点和半径,再确立五角星的五个角的坐标信息,其中五角星的各个角读书为36度,具体的 ...

  9. python windows自动化 爬虫_Python体系(网络爬虫、人工智能、WEB开发、自动化运维)详细介绍...

    不论你是对Python初出茅庐,还是如指诸掌,这篇文章对你的收获总归还是有的啦,可能只是程度的问题.好了不扯远了,来说正题,下面在分享这套体系前还是要让Python做一下"自我介绍" ...

  10. 如何用python实现自动化办公_Python自动化办公都需要掌握什么知识?

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手?python在自动化办公领域越来越受欢迎,批量处理 ...

最新文章

  1. matlab绘制图形hold on_matlab 中 hold on 和hold off的使用
  2. 性能测试中用LambdaProbe监控Tomcat
  3. 《Ext详解与实践》节选:文件上传
  4. 直播发送信息 说服务器开小差,【直播课答疑】上课开小差、注意力不集中、成绩差,有办法对付!(31讲)...
  5. 四川一级计算机课程编码,四川省计算机一级考试真题
  6. linux服务器之查看内存使用情况
  7. Apache Spark1.1.0部署与开发环境搭建 - Mark Lin
  8. java什么是同步_什么是同步?什么是互斥?
  9. 砥志研思SVM(一) 最优间隔分类器问题(上):硬间隔SVM
  10. Spring MVC 实践 - Base
  11. PS制作视频字幕教程
  12. 开源自己开发的一款宠物小精灵游戏
  13. 如何给PDF文件加密?PDF加密的3种方法
  14. mouseover,mouseout,mouseenter,mouseleave,hover
  15. 已知带头结点单链表中各结点的元素值为整形且递增有序,设计算法删除链表中所有大于mink且小于maxk的元素,并释放被删结点的空间。
  16. 利用Photoshop生成Sprite sheet
  17. C#交错数组和参数数组
  18. pineapple的学习笔记(第一、二讲)-CVA高校精英计划(第三期)
  19. html绘制坐标曲线,Word2010中怎么绘制曲线坐标图?
  20. 1.4_6 Axure RP 9 for mac 高保真原型图 - 案例5 【旋转的唱片3】进度条_滚动

热门文章

  1. 华为云IoT提出万物互联新范式,从万物感知到万物生长
  2. 德龙钢铁大脑:更锐的眼,更快的脑
  3. 【方法】Altera Cyclone系列的EP1C3T144C8N FPGA利用ALTASMI_PARALLEL IP核读写自身的EPCS Flash存储器
  4. Python程序员面试技巧
  5. 勒让德多项式的正交性和归一化
  6. 语音转文字怎么转?分享这些实用软件
  7. iOS系统字体大全,iOS系统中所有的字体
  8. 一文搞懂什么是Hadoop?Hadoop的前世今生,Hadoop的优点有哪些?Hadoop面试考查重点,大数据技术生态体系
  9. matlab中变量类型
  10. java 锯齿_Java2D图形抗锯齿