Python:爬虫财经数据-selenium

这篇具有很好参考价值的文章主要介绍了Python:爬虫财经数据-selenium。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近十年中,各类因果推断方法层出不穷。令人欣喜的同时,也让很多人无所适从。虽然借助 Stata,R,Python 等软件很容易「跑出」结果,但很多人应该都经历过如下「囧境」:

  • 虽然有很多方法可以用,但由于不清楚原理,不知道该用哪个?

  • 虽然自己很努力地跑代码、看文献,但总感觉没啥实质性进展,有一种「有劲没处使」的无力感;

  • 很像看看 QJE,AER,JoE,JASA 上那些牛逼的方法,但「一开始就懵了」……。

根源何在?可能是没有清晰地理解「基本概念」,比如条件期望,条件独立,无偏性以及 FWL 定理等。基础不牢,便会导致举步维艰。事实上,一旦理清基本概念和模型,后续的 Lasso,双重机器学习 (DML) 等听起来很高深的东西都不再困难,因为它们都是基础知识和理论的组合和延伸而已。

庄子所言「水之积也不厚,则其负大舟也无力」也正是这个意思。

为此,强基班 的目的在于巩固基础,理清 条件期望函数条件独立反事实架构选择偏差 等基本概念;理解 识别估计统计推断 的差别。进而在因果推断的架构下讲解 OLS,IV,FE 以及 DID 等方法,让大家能够「选择合适的方法、做出合理的解释」。

经济数据网站 爬虫,python,爬虫,selenium,1024程序员节,程序员创富,开发语言


编者按:本文参考自 Bryan Pfalzgraf 的 How to Use Selenium to Web-Scrape with Example,以及连享会课程 文本分析-爬虫-机器学习,特此致谢!

本推文将以爬取世界主要股票指数为例,简要介绍 Python 爬虫的方法。

1. Selenium

现在,很多网页通过使用 JavaScript 的 Ajax 技术实现了网页内容的动态改变。在碰到动态页面时,一种方法是精通JavaScript,并使用浏览器跟踪浏览器行为,分析 JavaScript 脚本,进而使用以上的方法模拟浏览器请求。但是这种方法非常复杂,很多时候 JavaScript 可能会复杂到一定程度,使得分析异常困难。

另外一种方法是使用 Selenium 直接调用浏览器,浏览器自动执行 JavaScript,然后调用浏览器的 HTML 即可。这种方法非常方便,但是速度异常之慢。

为了实现这一方法,我们首先要安装 seleniumpip install seleniumselenium 是 Python 中用来自动调用浏览器的一个包,在从网页中爬取数据的过程中可以不需要我们自己去寻找真正的网页源代码。

selenium 中一个重要的类是 webdriver,它能够自动化地打开一个网页,帮助我们自动化进行浏览网页。webdriver 支持 Google Chrome,Internet Explorer,Firefox,Safari 和 Opera。

这里以一个爬取 NBA 球员薪酬网站为例,简要说明 selenium 的使用方法。首先我们需要定义一个 driver 的变量,用来爬取数据的引擎。

from selenium import webdriver  
from selenium.webdriver.common.keys import Keys  
import pandas as pd  
driver = webdriver.Chrome()  

然后我们需要使用 Python 去打开一个我们想要爬取的网站。

driver.get('https://hoopshype.com/salaries/players/')  

接下来我们需要定位爬取信息的位置,为了提取需要的信息,我们需要定位到这个信息元素的 XPath。XPath 是一个用来寻找一个网页中任何元素的语法,为了找到 XPath, 我们需要右击鼠标,然后选择 检查(inspect)

经济数据网站 爬虫,python,爬虫,selenium,1024程序员节,程序员创富,开发语言

我们可以看到 Stephen Curry 的 HTML 代码是:

<td class=”name”>
<a href=”https://hoopshype.com/player/stephen-curry/salary/">
Stephen Curry </a>
</td>

在将其转换成 XPath 之前,让我们再检查一下另外一个明星 Russell Westbrook:

<td class=”name”>
<a href=”https://hoopshype.com/player/russell-westbrook/salary/">
>Russell Westbrook </a>
</td>

可以看到两者的相似之处在于 <td class=”name”>,也就是说我们可以据此来得到所有明星的名字。我们将其转换为 XPath: //td[@class=”name”]。所有的 XPath 以两条 // 开始,然后我们需要 td 标签,以及 td 标签下的 name 类。

from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('https://hoopshype.com/salaries/players/')
players = driver.find_elements(By.XPATH, '//td[@class="name"]')
players_list = []
for p in range(len(players)):
    players_list.append(players[p].text)

通过相同的办法,我们也可以找到这些球星的薪水。

salaries_list = []
for item in salaries:
    salaries_list.append(item.text)
df = pd.DataFrame(list(zip(players_list, salaries_list)))

经济数据网站 爬虫,python,爬虫,selenium,1024程序员节,程序员创富,开发语言

2. 爬取雅虎财经数据

在了解如何使用 Selenium 之后,我们来爬取 Yahoo Finance 中的 世界主要股票指数。这次我们选择的浏览器是微软的 Edge 浏览器:

driver2 = webdriver.Edge()  

这次采取和前文爬取 NBA 明星薪酬数据不太相同的方法,我们引入了 BeautifulSoup 包,将网页的 HTML 爬取下来。

driver2.get("https://finance.yahoo.com/world-indices/")
html2 = driver2.execute_script('return document.body.innerHTML;')
soup2 = BeautifulSoup(html2,'lxml')

接下来,我们按照前文的办法寻找对应的标签,以及标签下面的类,分别获得指数简称,指数全称,实时价格,价格数值变化,价格的百分比变化,以及成交量.

indices = [entry.text for entry in \
    soup2.find_all("a", {"class":"Fw(600) C($linkColor)"})]
names = [item.text for item in \
    soup2.find_all("td", {"class":"Va(m) Ta(start) Px(10px) Fz(s)","aria-label":"Name"})]
lastprice = [entry.text for entry in \
    soup2.find_all("fin-streamer", {"data-test":"colorChange", "data-field":"regularMarketPrice"})]
change = [entry.text for entry in \
    soup2.find_all("td", {"class":"Va(m) Ta(end) Pstart(20px) Fw(600) Fz(s)", "aria-label":"Change"})]
perc_change = [entry.text for entry in \
    soup2.find_all("td", {"class":"Va(m) Ta(end) Pstart(20px) Fw(600) Fz(s)", "aria-label":"% Change"})]
volumne = [item.text for item in \
    soup2.find_all("td", {"class":"Va(m) Ta(end) Pstart(20px) Fz(s)", "aria-label":"Volume"})]
df2 = pd.DataFrame((list(zip(indices, names, lastprice, change, perc_change, volumne))), \
    columns=["indices", "names", "lastprice", "change", "perc_change", "volume"])

经济数据网站 爬虫,python,爬虫,selenium,1024程序员节,程序员创富,开发语言

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

经济数据网站 爬虫,python,爬虫,selenium,1024程序员节,程序员创富,开发语言

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

经济数据网站 爬虫,python,爬虫,selenium,1024程序员节,程序员创富,开发语言
经济数据网站 爬虫,python,爬虫,selenium,1024程序员节,程序员创富,开发语言

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!经济数据网站 爬虫,python,爬虫,selenium,1024程序员节,程序员创富,开发语言

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

经济数据网站 爬虫,python,爬虫,selenium,1024程序员节,程序员创富,开发语言

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

经济数据网站 爬虫,python,爬虫,selenium,1024程序员节,程序员创富,开发语言

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

经济数据网站 爬虫,python,爬虫,selenium,1024程序员节,程序员创富,开发语言

六、面试宝典

经济数据网站 爬虫,python,爬虫,selenium,1024程序员节,程序员创富,开发语言

经济数据网站 爬虫,python,爬虫,selenium,1024程序员节,程序员创富,开发语言文章来源地址https://www.toymoban.com/news/detail-860422.html

简历模板经济数据网站 爬虫,python,爬虫,selenium,1024程序员节,程序员创富,开发语言
经济数据网站 爬虫,python,爬虫,selenium,1024程序员节,程序员创富,开发语言 若有侵权,请联系删除

到了这里,关于Python:爬虫财经数据-selenium的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《Python算法交易实战》——yfinace获取yahoo财经数据

    因为从2021 年11 月1 日起,用户无法从中国大陆地区使用Yahoo 产品与服务 所以下面两个错误,都是代理配置的问题 error:No timezone found, symbol may be delisted error:No data found for this date range, symbol may be delisted 以下是解决办法: 1.实现强劲上网,保证你可以在浏览器访问google 2.配置

    2023年04月15日
    浏览(32)
  • Python爬虫|使用Selenium轻松爬取网页数据

    1. 什么是selenium? Selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作浏览器一样。支持的浏览器包括IE,Firefox,Safari,Chrome等。 Selenium可以驱动浏览器自动执行自定义好的逻辑代码,也就是可以通过代码完全模拟成人类使用

    2024年02月04日
    浏览(55)
  • Python爬虫——Selenium在获取网页数据方面的使用

    目录 一、Selenium (一)引入  (二)启动浏览器 二、操作 (一)点击 (二)输入 三、数据获取 四、特点 五、抓取拉钩实例 六、其他操作 (一)窗口切换 代码 (二)操作下拉列表/无头浏览器 代码         一个电影票房的网站里,响应数据是一串完全看不懂的字符串

    2024年02月07日
    浏览(49)
  • Python爬虫实战——Lazada商品数据(selenium自动化爬虫,xpath定位)

            在此说明,这个项目是我第一次真正去爬的一个网站,里面写的代码我自己都看不下去,但是已经不想花时间去重构了,所以看个乐呵就好,要喷也可以(下手轻一点)。这篇文算是记录我的学习中出现的一些问题,不建议拿来学习和真拿我的代码去爬Lazada的数据,

    2024年02月02日
    浏览(57)
  • Python爬虫实战:selenium爬取电商平台商品数据(1)

    def index_page(page): “”\\\" 抓取索引页 :param page: 页码 “”\\\" print(‘正在爬取第’, str(page), ‘页数据’) try: url = ‘https://search.jd.com/Search?keyword=iPhoneev=exbrand_Apple’ driver.get(url) if page 1: input = driver.find_element_by_xpath(‘//*[@id=“J_bottomPage”]/span[2]/input’) button = driver.find_element_by_xpath(‘

    2024年04月28日
    浏览(42)
  • Python爬虫:实现爬取、下载网站数据的几种方法

    使用脚本进行下载的需求很常见,可以是常规文件、web页面、Amazon S3和其他资源。Python 提供了很多模块从 web 下载文件。下面介绍 requests 模块是模仿网页请求的形式从一个URL下载文件 示例代码: 安装 wget 库 示例代码 有些 URL 会被重定向到另一个 URL,后者是真正的下载链接

    2024年02月05日
    浏览(69)
  • 【Python爬虫】基于selenium库爬取京东商品数据——以“七夕”为例

    小白学爬虫,费了一番功夫终于成功了哈哈!本文将结合本人踩雷经历,分享给各位学友~ 用写入方式打开名为data的csv文件,并确定将要提取的五项数据。 上面第一行代码值得一提,driver =  webdriver.Edge()括号内为Edge浏览器驱动程序地址,需要在Edge浏览器设置中查找Edge浏览器

    2024年02月06日
    浏览(56)
  • 大学生学完python靠几个接单网站兼职,实现经济独立

    程序员就是当今时代的手艺人,程序员可以通过个人的技术来谋生。而在工作之余接私单可以作为一种创富的途径,受到程序员的广泛认可。说句实在话,现在这个时代,很多人仅靠主业顶多维持基本生活,想让自己、家人生活好一点很难。我接的私活并不算多,加起来也就

    2023年04月09日
    浏览(45)
  • Python数据分析案例22——财经新闻可信度分析(线性回归,主成分回归,随机森林回归)

     本次案例还是适合人文社科领域,金融或者新闻专业。本科生做线性回归和主成分回归就够了,研究生还可以加随机森林回归,其方法足够人文社科领域的硕士毕业论文了。 有八个自变量,[\\\'微博平台可信度\\\',\\\'专业性\\\',\\\'可信赖性\\\',\\\'转发量\\\',\\\'微博内容质量\\\',\\\'时效性\\\',\\\'验证程度

    2023年04月08日
    浏览(69)
  • 爬虫实战(一)Python+selenium自动化获取数据存储到Mysql中

      行话说得好,“爬虫学得好,牢饭吃到饱!”哈哈博主是因这句话入的坑,不为别的就为邀大家一起铁窗泪(bushi),本人虽小牛一只,但是喜爱捣鼓技术,有兴趣的小伙伴们可以共同探讨,也欢迎各位大佬们的指点,愿共同进步!   这次计划是翻墙爬取外网某网站

    2024年01月17日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包