网页qq抓取什么原理(2017年成都会计从业资格考试《python学起》学习方法)

优采云 发布时间: 2022-03-30 08:07

  网页qq抓取什么原理(2017年成都会计从业资格考试《python学起》学习方法)

  文章目录

  一、简介

  很多人学习python,不知道从哪里开始。

  很多人学了python,掌握了基本的语法之后,都不知道去哪里找case入门了。

  许多做过案例研究的人不知道如何学习更高级的知识。

  所以针对这三类人,我会为大家提供一个很好的学习平台,免费的视频教程,电子书,还有课程的源码!

  QQ群:101677771

  一般的爬虫套路无非就是发送请求、获取响应、解析网页、提取数据、保存数据的步骤。requests 库主要用于构造请求,xpath 和正则匹配多用于定位和提取数据。对于一个完整的爬虫来说,代码量可以从几十行到上百行不等。初学者的学习成本相对较高。

  说到read.xxx系列pandas的功能,常用的读取数据的方法有:pd.read_csv()和pd.read_excel(),而pd.read_html()很少用到,但是它的作用是很强大。尤其是用来抓Table数据的时候,简直就是神器。无需掌握正则表达式或xpath等工具,只需几行代码即可快速抓取网页数据并保存在本地。

  二、原理

  pandas 适合抓取表格数据。首先,我们看一下具有表格数据结构的网页,例如:

  

  

  用Chrome浏览器查看网页的HTML结构,会发现表格数据有一些共性。一般网页结构如下所示。

  

...

...

...

...

...

...

...

...

...

  网页有以上结构,我们可以尝试使用pandas的pd.read_html()方法直接获取数据。

  

  pd.read_html()的一些主要参数

  三、爬行实战

  示例 1

  爬取2019年成都空气质量数据(12页数据),目标网址:

  import pandas as pd

dates = pd.date_range(‘20190101‘, ‘20191201‘, freq=‘MS‘).strftime(‘%Y%m‘) # 构造出日期序列 便于之后构造url

for i in range(len(dates)):

df = pd.read_html(f‘http://www.tianqihoubao.com/aqi/chengdu-{dates[i]}.html‘, encoding=‘gbk‘, header=0)[0]

if i == 0:

df.to_csv(‘2019年成都空气质量数据.csv‘, mode=‘a+‘, index=False) # 追加写入

i += 1

else:

df.to_csv(‘2019年成都空气质量数据.csv‘, mode=‘a+‘, index=False, header=False)

  9行代码就搞定了,爬取速度也很快。

  查看保存的数据

  

  示例 2

  抓取新浪财经基金重仓股数据(25页数据),网址:

  import pandas as pd

df = pd.DataFrame()

for i in range(1, 26):

url = f‘http://vip.stock.finance.sina.com.cn/q/go.php/vComStockHold/kind/jjzc/index.phtml?p={i}‘

df = pd.concat([df, pd.read_html(url)[0].iloc[::,:-1]]) # 合并DataFrame 不要明细那一列

df.to_csv(‘新浪财经基金重仓股数据.csv‘, encoding=‘utf-8‘, index=False)

  6行代码就搞定了,爬取速度也很快。

  查看保存的数据:

  

  以后爬一些小数据的时候,只要遇到这种Table数据,可以先试试pd.read_html()方法。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线