python实现爬取非小号相关性(btc)数据

  • 下载chromedriver并且配置到PATH
  • 配置xpath、selenium环境
  • 定位元素
  • 保存数据
  • 完整代码

下载chromedriver并且配置到PATH

首先我们使用谷歌测试插件来爬取网页源码,原因是普通的requests.get()在网页没有加载完全的时候就直接爬取了,最后得到的html源码是不完整的。插件下载地址为 chromedriver.
下载后记得将其配置到环境变量PATH中,并放在一下文件夹下:

配置xpath、selenium环境

xpath用来定位元素、selenium用来调用插件

conda install xpath
conda install selenium

然后对chromedriver插件进行测试:

from selenium import webdriver
browser = webdriver.Chrome()

这个时候如果会自动打开一个chrome浏览器窗口,就说明测试成功了。

定位元素

首先打开非小号的官网,按下F12审查:

通过选择器发现每个币种的url都在div class="ivu-table-cell"下,然后我们就通过xpath来解析并获取这些div。

1.模拟浏览器打开非小号官网,并停留5秒钟(为了使得网页完全打开),然后获取并解析源码

     browser.get(url) time.sleep(5)page_text = browser.page_sourcetree = etree.HTML(page_text)li_list = tree.xpath("//div[@class='ivu-table-cell']")

2.保存所有币种的url
我们可以看到url就藏在a标签中于是我们通过xpath解析a标签的href。

    url_list = []for coin_url in li_list:if len(coin_url.xpath('./a/@href')) == 0:continueurl_list.append(str(coin_url.xpath('./a/@href')[0]))

3.对所有币种url进行请求获得BTC相关性数据
首先我们随便打开一个币种的网页:

然后同样用选择器选择到相关性的位置,然后在源码对应的地方右键,选择copy – xpath,就能获取这个相关性数据了。

    coef_list = []for temp_url in url_list:try:temp_text = requests.get(temp_url).texttemp_text = etree.HTML(temp_text)coef = temp_text.xpath("//body/div[@id='__nuxt']/div[@id='__layout']/section[1]/div[1]/div[1]/div[1]/div[1]/div[3]/div[2]/div[2]/div[8]/span[2]")coef = float(coef[0].text.split('\n')[1])coef_list.append(coef)print(temp_url + 'is finished!!!')except Exception as e:coef_list.append(None)print (e)

保存数据

最后将数据保存为csv文件。

    coin_name = [x.split('/')[4] for x in url_list]coef_df = pd.DataFrame([coin_name, coef_list]).Tcoef_df.columns = ['coin', 'coef']coef_df.to_csv(os.getcwd() + '\coef_df.csv', index = False)

文件打开后就是所有币种对BTC的相关系数了!

完整代码

import requests
from lxml import etree
from selenium import webdriver
import time
import pandas as pd
import osbrowser = webdriver.Chrome()
url = 'https://www.feixiaohao.com'
datapath = os.getcwd()if __name__ == "__main__":browser.get(url) time.sleep(5)page_text = browser.page_sourcetree = etree.HTML(page_text)li_list = tree.xpath("//div[@class='ivu-table-cell']")# 找出所有币种的urlurl_list = []for coin_url in li_list:if len(coin_url.xpath('./a/@href')) == 0:continueurl_list.append(str(coin_url.xpath('./a/@href')[0]))url_list = [url + x for x in url_list ]# 根据所有币种URL爬取BTC相关性coef_list = []for temp_url in url_list:try:temp_text = requests.get(temp_url).texttemp_text = etree.HTML(temp_text)coef = temp_text.xpath("//body/div[@id='__nuxt']/div[@id='__layout']/section[1]/div[1]/div[1]/div[1]/div[1]/div[3]/div[2]/div[2]/div[8]/span[2]")coef = float(coef[0].text.split('\n')[1])coef_list.append(coef)print(temp_url + 'is finished!!!')except Exception as e:coef_list.append(None)print (e)# 保存数据coin_name = [x.split('/')[4] for x in url_list]coef_df = pd.DataFrame([coin_name, coef_list]).Tcoef_df.columns = ['coin', 'coef']coef_df.to_csv(os.getcwd() + '\coef_df.csv', index = False)

python实现爬取非小号相关性(btc)数据相关推荐

  1. python selenium 爬取去哪儿网的数据

    python selenium 爬取去哪儿网的数据 完整代码下载:https://github.com/tanjunchen/SpiderProject/tree/master/selenium+qu ...

  2. Python爬虫 爬取酷狗TOP500的数据

    根据书籍<从零开始学Python网络爬虫>P41,综合案例2-爬取酷狗TOP500的数据修改而来. 使用模块requests和模块BeautifukSoup进行爬取. 不得不说,酷狗拿来跑 ...

  3. Python如何爬取实时变化的WebSocket数据

    作者 | 韦世东 来源 | 进击的Coder(公众号id:FightingCode) 一.前言 作为一名爬虫工程师,在工作中常常会遇到爬取实时数据的需求,比如体育赛事实时数据.股市实时数据或币圈实时变 ...

  4. python + selenium 爬取12306所有车站车次数据

    python + selenium 驱动谷歌浏览器 实现模拟人工爬取车次数据,特别注意 谷歌版本和驱动器版本. 驱动获取地址:https://blog.csdn.net/weixin_44186072 ...

  5. 掌财社:python怎么爬取链家二手房的数据?爬虫实战!

    我们知道爬虫的比较常见的应用都是应用在数据分析上,爬虫作为数据分析的前驱,它负责数据的收集.今天我们以python爬取链家二手房数据为例来进行一个python爬虫实战.(内附python爬虫源代码) ...

  6. 轻松利用Python爬虫爬取你想要的数据

    网络爬虫的基本工作流程如下: 1.首先选取一部分精心挑选的种子URL. 2.将这些URL放入待抓取URL队列. 3.从待抓取URL队列中读取待抓取队列的URL,解析DNS,并且得到主机的IP,并将UR ...

  7. Python+Selenium — 爬取京东搜索商品页数据

    用 request 下载京东搜索商品页面源码后,发现得到的数据只有30条,怀疑京东搜索页面加载方式应该是动态渲染的,所以打算采用 Selenium 驱动谷歌浏览器来爬取搜索页面. 代码如下: from ...

  8. python爬虫爬取网页上的天气数据

    目录 一:获取网页重要信息 二:爬取网页数据 三:源码分享 一:获取网页重要信息 在要爬取数据信息的网页上,F12进入查看网页内容 二:爬取网页数据 1 导入模块 import requests fr ...

  9. Python Ajax爬取微博个人博客数据

    文章目录 利用request.pyquery.xlwings等库抓取微博个人博客数据. (1)抓取[目标网址](https://m.weibo.cn/u/2830678474) (2)用 Chrome ...

最新文章

  1. 如何优雅的设计java异常
  2. 数据库-sql-面试-rank
  3. 利用Angular2的Observables实现交互控制
  4. POJ1696 Space Ant
  5. NURBS曲面结构及生成原理、修改方法
  6. Linux进程实践(4) --wait避免僵尸进程
  7. Sql Server 监控 Job 执行情况
  8. 【信息系统项目管理师】常用网络标准与网络协议
  9. 法学学士学位的完整形式是什么?
  10. python画三维立体图难吗_万万没想到,Python竟能绘制出如此酷炫的三维图
  11. 随想录(学习使用virtualbox软件)
  12. linux 命令行 文件管理器,CLEX - 集成命令提示符、“多才多艺”的命令行文件管理器...
  13. input placeholder
  14. grafana 中国地图 echarts
  15. 利用PhotoShop批量压缩和转换图片格式
  16. 如何在谷歌地图(google maps)中获取经纬度
  17. Android中action启动方法大全
  18. macOS免费串口工具coolTerm/Minicom/Comtool/Volt+(伏特加)/友善串口调试助手/screen/picocom
  19. 五轴转台哪家质量比较好?
  20. C语言内联汇编使用方法

热门文章

  1. jsp案例:计算矩形、圆形面积
  2. 目睹太多读博惨案之后,清华姚班助理教授写了个读博决策树
  3. 纯css3圆柱模板立体图
  4. conda 导出环境文件的方法(文件方法)
  5. python宿舍管理系統毕业设计源码231642
  6. win7环境下 net start npf服务名无效的解决方法。
  7. 【嵌入式开发教程9】手把手教你做平板电脑-WIFI 驱动实验教程
  8. 使用 DHTML 与 XML 制作 Ajax 幻灯片
  9. 小米手机 开发app python_python 全栈开发,Day59(小米商城)
  10. D. Solve The Maze(BFS+思维)