当前位置:首页 » 编程语言 » python数据抓取

python数据抓取

发布时间: 2022-01-08 17:29:11

1. 如何用python 爬虫抓取金融数据

获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一。鉴于此,我拾起了Python这把利器,开启了网络爬虫之路。

本篇使用的版本为python3.5,意在抓取证券之星上当天所有A股数据。程序主要分为三个部分:网页源码的获取、所需内容的提取、所得结果的整理。

一、网页源码的获取

很多人喜欢用python爬虫的原因之一就是它容易上手。只需以下几行代码既可抓取大部分网页的源码。

为了减少干扰,我先用正则表达式从整个页面源码中匹配出以上的主体部分,然后从主体部分中匹配出每只股票的信息。代码如下。

pattern=re.compile('<tbody[sS]*</tbody>')
body=re.findall(pattern,str(content)) #匹配<tbody和</tbody>之间的所有代码pattern=re.compile('>(.*?)<')
stock_page=re.findall(pattern,body[0]) #匹配>和<之间的所有信息

其中compile方法为编译匹配模式,findall方法用此匹配模式去匹配出所需信息,并以列表的方式返回。正则表达式的语法还挺多的,下面我只罗列所用到符号的含义。

语法 说明

. 匹配任意除换行符“ ”外的字符

* 匹配前一个字符0次或无限次

? 匹配前一个字符0次或一次

s 空白字符:[<空格> fv]

S 非空白字符:[^s]

[...] 字符集,对应的位置可以是字符集中任意字符

(...) 被括起来的表达式将作为分组,里面一般为我们所需提取的内容

正则表达式的语法挺多的,也许有大牛只要一句正则表达式就可提取我想提取的内容。在提取股票主体部分代码时发现有人用xpath表达式提取显得更简洁一些,看来页面解析也有很长的一段路要走。

三、所得结果的整理

通过非贪婪模式(.*?)匹配>和<之间的所有数据,会匹配出一些空白字符出来,所以我们采用如下代码把空白字符移除。

stock_last=stock_total[:] #stock_total:匹配出的股票数据for data in stock_total: #stock_last:整理后的股票数据
if data=='':
stock_last.remove('')

最后,我们可以打印几列数据看下效果,代码如下

print('代码',' ','简称',' ',' ','最新价',' ','涨跌幅',' ','涨跌额',' ','5分钟涨幅')for i in range(0,len(stock_last),13): #网页总共有13列数据
print(stock_last[i],' ',stock_last[i+1],' ',' ',stock_last[i+2],' ',' ',stock_last[i+3],' ',' ',stock_last[i+4],' ',' ',stock_last[i+5])

2. python爬虫抓取数据的步骤

三步,用scrapy

  1. 定义item类

  2. 开发spider类

  3. 开发pipeline

3. 如何提取Python数据

首先是准备工作,导入需要使用的库,读取并创建数据表取名为loandata。

?

1
2
3

import numpy as np
import pandas as pd
loandata=pd.DataFrame(pd.read_excel('loan_data.xlsx'))

设置索引字段

在开始提取数据前,先将member_id列设置为索引字段。然后开始提取数据。

?

1

Loandata = loandata.set_index('member_id')

按行提取信息

第一步是按行提取数据,例如提取某个用户的信息。下面使用ix函数对member_id为1303503的用户信息进行了提取。

?

1

loandata.ix[1303503]

按列提取信息

第二步是按列提取数据,例如提取用户工作年限列的所有信息,下面是具体的代码和提取结果,显示了所有用户的工作年龄信息。

?

1

loandata.ix[:,'emp_length']

按行与列提取信息

第三步是按行和列提取信息,把前面两部的查询条件放在一起,查询特定用户的特定信息,下面是查询member_id为1303503的用户的emp_length信息。

?

1

loandata.ix[1303503,'emp_length']

在前面的基础上继续增加条件,增加一行同时查询两个特定用户的贷款金额信息。具体代码和查询结果如下。结果中分别列出了两个用户的代码金额。

?

1

loandata.ix[[1303503,1298717],'loan_amnt']

在前面的代码后增加sum函数,对结果进行求和,同样是查询两个特定用户的贷款进行,下面的结果中直接给出了贷款金额的汇总值。

?

1

loandata.ix[[1303503,1298717],'loan_amnt'].sum()

除了增加行的查询条件以外,还可以增加列的查询条件,下面的代码中查询了一个特定用户的贷款金额和年收入情况,结果中分别显示了这两个字段的结果。

?

1

loandata.ix[1303503,['loan_amnt','annual_inc']]

多个列的查询也可以进行求和计算,在前面的代码后增加sum函数,对这个用户的贷款金额和年收入两个字段求和,并显示出结果。

?

1

loandata.ix[1303503,['loan_amnt','annual_inc']].sum()

4. python数据抓取 怎样打印输出信息


给你一个例子,希望你可以理解,test3传递了输入给test1,test1输出了接收到的参数。

test1:

importsys
input=sys.stdin.read()
sys.stdout.write('Received:%s'%input)

test3:

importsubprocess
process=subprocess.Popen(['python','test1.py'],shell=False,stdin=subprocess.PIPE)
printprocess.communicate('Howareyou?')


领悟一下,获取process的输出你会的吧~

5. 如何用python抓取网页上的数据

使用内置的包来抓取,就是在模仿浏览器访问页面,再把页面的数据给解析出来,也可以看做是一次请求。

6. 如何利用python从数据库抓取数据

仅在里边定义连接字串,在使用的时候在创建对象,使用完对象就关闭
Config.asp:
Quote
<%
Dim Def_Sample
Def_Path=server.MapPath("data.mdb")
Def_Sample="DBQ="+Def_Path+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" '连接字串
%>

7. python提取数据,请问怎么提取{}里面的数据

这个有标准格式,你按"|"切割,再按“{”切割,就可以取到数据了。

8. python爬虫数据提取

理论上可以,实际要看目标网页的情况,反爬虫机制、js动态刷新抓取都是比较头疼的。
当然如果不考虑效率,selenium 之类的网页自动化方式,通常都可以实现。

9. Python爬虫常用的几种数据提取方式

数据解析方式
- 正则
- xpath
- bs4
数据解析的原理:
标签的定位
提取标签中存储的文本数据或者标签属性中存储的数据

10. 如何用python从网页上抓取数据

用Beautiful Soup这类解析模块: Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree); 它提供简单又常用的导航(navigating),搜索以及修改剖析树的操作

热点内容
单片机android 发布:2024-09-20 09:07:24 浏览:765
如何提高三星a7安卓版本 发布:2024-09-20 08:42:35 浏览:664
如何更换服务器网站 发布:2024-09-20 08:42:34 浏览:311
子弹算法 发布:2024-09-20 08:41:55 浏览:289
手机版网易我的世界服务器推荐 发布:2024-09-20 08:41:52 浏览:817
安卓x7怎么边打游戏边看视频 发布:2024-09-20 08:41:52 浏览:162
sql数据库安全 发布:2024-09-20 08:31:32 浏览:94
苹果连接id服务器出错是怎么回事 发布:2024-09-20 08:01:07 浏览:507
编程键是什么 发布:2024-09-20 07:52:47 浏览:658
学考密码重置要求的证件是什么 发布:2024-09-20 07:19:46 浏览:481