easyui数据请求两个url_使用Python爬取数据的两种姿势

在从事一些活动的过程中,需要使用Python来抓取数据和处理分析数据。这里分享两种使用Python编写数据爬虫的代码。一种可以用于简单的数据抓取的场景,准确来说就是只需要抓取一级页面,而另一种是比较标准的爬虫写法,可以用于处理多级页面的数据抓取以及文件下载的场景。

hashgard区块链浏览器数据抓取

在对hashgard区块链浏览器数据抓取的目的主要是要获取三类数据,分别是主网token兑换的数据、主网各钱包中的gard余额、以及主网兑换时奖励发放数据。这三种数据抓取的区别在于只请求一次url和循环多次请求url。由于单线程是阻塞式请求,只有在上一次网络请求处理完毕之后才会发起下一次新的网络请求。
def get_record(url):    resp = urllib.request.urlopen(url)    ele_json = json.loads(resp.read())    return ele_json
在这种简易的数据爬取脚本中,核心的数据请求方法如上面的代码所示,当需要爬取的数据在单个url中时,使用get_record方法可以一次性的url的数据完整的爬取会本地并保存在内存中,以备用于本地的数据处理。
con = pymysql.connect("127.0.0.1", "root", "password不可见", "hashgard", charset='utf8')cur = con.cursor()cur.execute('truncate rewards')con.commit()sql = 'select gard_address from erc20_migrate group by gard_address'sql2 = 'select signer from erc20_migrate group by signer'cur.execute(sql)result = cur.fetchall()cur.execute(sql2)result2 = cur.fetchall()result3 = []for row in result:    result3.append(row[0])for row in result2:    result3.append(row[0])i = len(result3)while i > 0:    i = i - 1    address = result3[i]    url = 'https://rest.hashgard.com/gard/api/distribution/delegators/' + address + '/rewards'    print(url)    resp = get_record(url)    print(resp)    json1 = json.loads(resp)    print(json1)
上面的代码是用于从本地数据库中取得钱包地址,并组装成一个数组,再对数组进行循环,每一次循环就是产生一次远程url请求,根据返回的数据进行本地化处理,处理完成之后进入下一次循环。经过比较,是while循环可以较好的控制循环顺序,而使用for循环则容易出现故障。原因在于本地cpu的循环速度远远高于远程请求url的速度,不好控制程序的执行,因此,这样脚本只适合用于比较简单的数据获取的场景,比如使用一行Python代码获取远程url的数据内容,大概如此之类。 爬取百度成语大全 在爬取百度成语大全的过程中,由于场景要复杂,因此借助了Scrapy爬虫框架,通过编写爬虫的方式,完成数据抓取,由于Scrapy完整的调度功能,可以进行多线程抓取以及复杂的数据处理场景。 爬出百度成语大全仍然是爬取三类数据,分别是成语、成语详情页以及成语的语音文件。通过编写三个爬虫来实现。初次接触Scrapy的代码会有一些不容易理解的感觉,所以主要把基于Scrapy框架开发爬虫的过程描述一下。 1、准备好python环境,包括开发ide工具 2、安装Scrapy框架 3、生成Scrapy项目
scrapy startproject spiders
4、建立爬虫
cd spidersscrapy genspider baiduzici sp0.baidu.com
5、编写baiduzici爬虫的代码 6、依次生成另外两个爬虫 7、编写另外两个爬虫的代码 8、最终得到一个有多个爬虫的工程 每一个爬虫在运行完成之后都会有如下的报告,可以了解到本次爬取工作持续的事件,下载的数据量等等状态,这也是比较完备的数据爬虫方案,可以用于正式的搜索引擎项目开发中。

f8a31849f991c71181d0ce247b32ba20.png

以上介绍了在两次不同的需求场景中使用的到数据抓取方案,一种是比较简单,适用的场景也比较单一,对数据爬取的进程控制比较差。而使用Scrapy框架做数据爬取则适合于需求较复杂的场景。掌握Python开发,提高数据处理的效率。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值