首页 > 编程问答 >尝试让 BeautifulSoup 打印来自雅虎财经的名字的 URL 列表

尝试让 BeautifulSoup 打印来自雅虎财经的名字的 URL 列表

时间:2024-08-02 15:35:37浏览次数:10  
标签:python web-scraping finance yahoo

目标是让 Python / BeautifulSoup 抓取雅虎财经和上市公司所有者的名字/姓氏:

from bs4 import BeautifulSoup
import requests

    url = 'https://finance.yahoo.com/quote/GTVI/profile?p=GTVI'
    page = requests.get(url, headers={
        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36",
    })
    soup = BeautifulSoup(page.text, 'html.parser')
    price = soup.find_all("tr", {"class": "C($primaryColor) BdB Bdc($seperatorColor) H(36px)"})
    print(soup.select_one("td > span").text)

^-上面的单个调用完美地工作,但我无法让它循环并多次打印以保持用户代理浏览器的屏蔽。这是我的尝试(Python 新手请记住)Haaalp :)

from bs4 import BeautifulSoup
import requests

url = ['https://finance.yahoo.com/quote/GTVI/profile?p=GTVI',
'https://finance.yahoo.com/quote/RAFA/profile?p=RAFA',
'https://finance.yahoo.com/quote/CYDX/profile?p=CYDX',
'https://finance.yahoo.com/quote/TTHG/profile?p=TTHG']
names = []
for link in url:
    w=1
    reqs2 = requests.get(link)
page = requests.get(url, headers={
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36",
})
soup = BeautifulSoup(page.text, 'html.parser')
for x in soup.find_all("tr", {"class": "C($primaryColor) BdB Bdc($seperatorColor) H(36px)"})
names.append(x.text)
print(names)(soup.select_one("td > span").text)

当然,以下是如何使用 Python 和 BeautifulSoup 从雅虎财经的多个网页上抓取高管姓名和职务的方法:

from bs4 import BeautifulSoup
import requests

urls = [
    'https://finance.yahoo.com/quote/GTVI/profile?p=GTVI',
    'https://finance.yahoo.com/quote/RAFA/profile?p=RAFA',
    'https://finance.yahoo.com/quote/CYDX/profile?p=CYDX',
    'https://finance.yahoo.com/quote/TTHG/profile?p=TTHG'
]

names = []

for url in urls:
    headers = {
        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36",
    }
    page = requests.get(url, headers=headers)
    soup = BeautifulSoup(page.text, 'html.parser')

    executives = soup.find_all("tr", {"class": "C($primaryColor) BdB Bdc($seperatorColor) H(36px)"})
    for executive in executives:
        name_element = executive.find("td", {"class": "Ta(start)"}).find("span")
        name = name_element.text.strip() if name_element else "N/A"
        names.append(name)

print(names)

解释:

  1. 循环遍历 URL: 代码遍历 urls 列表中的每个 URL。
  2. 为每个 URL 发出请求: 在循环内,它会向给定的 URL 发送一个请求,包括一个用户代理标头来模拟一个浏览器。
  3. 解析 HTML: 它使用 BeautifulSoup 解析下载的 HTML 内容。
  4. 查找包含高管信息的元素: 它使用 find_all() 方法搜索与指定类匹配的 <tr> 元素。这些行包含高管的详细信息。
  5. 提取姓名: 在每个找到的行中,它会找到包含姓名(在 <td> 标签内,类为 Ta(start) )的 <td> 元素。然后,它会提取文本内容。
  6. 追加到列表: 提取到的姓名将被追加到 names 列表中。
  7. 打印姓名: 循环完成后,它会打印收集到的姓名列表。

此代码将遍历每个 URL,查找包含高管姓名的特定 HTML 结构,提取姓名,并将它们存储在 names 列表中以供进一步处理或输出。

请注意: 网站结构可能会发生变化。如果雅虎财经的布局发生变化,则此代码可能需要调整以匹配新的结构。

标签:python,web-scraping,finance,yahoo
From: 74140849

相关文章

  • {Python} 有没有办法从函数中“提取”返回值变量并在其他地方使用它,而不调用原始函数?
    第一次在这里发帖。对python来说相对较新,我正在开发一个程序,它基本上是一个随机故事生成器,用于学习语言、发展技能并添加到我的投资组合中。我有一个主文件(最初启动该程序)、一个简介文件(对于介绍部分,获取用户名以及我试图“提取”user_name变量的位置),一个函数文件,其中包......
  • 为什么我在 Python 中的 Skip-Gram 实现会产生不正确的结果?
    我正在使用Python实现Word2Vec的Skip-Gram模型。然而,正如生成的嵌入及其可视化所示,我的模型似乎无法正常工作。这是嵌入的3D图的示例,它显示单词聚集在一起并重叠,因此很难区分它们:我怀疑问题在于我的实现而不是绘图函数。importnumpyasnpfromnltk.corpusimpor......
  • 基于SpringBoot的智能购房推荐系统-09040(免费领源码)可做计算机毕业设计JAVA、PHP、爬
    Springboot智能购房推荐系统摘 要近年来随着我国经济的高速发展,房地产业也随之蓬勃发展,尤其是最近国家新出台的房改政策。鼓励居民购房,这对房产公司无疑是一个极好的发展势头。尤为重要的是,近几年随着信息技术和电子商务的快速发展,许多企业都开发了自己房产信息软件。智......
  • Python 基础教学 - 开发规范
    Python基础教学-开发规范一、引言在Python编程中,遵循良好的开发规范是编写高质量、可维护代码的关键。本文将为您详细介绍Python开发中的一些重要规范,帮助您养成良好的编程习惯。二、代码布局缩进使用4个空格进行缩进,避免使用制表符。示例:ifTrue:p......
  • Python基础学习笔记(一)
    文章目录一、下载Python二、变量三、数据类型四、运算符五、语句六、容器类型七、函数function八、常用API九、面向对象类的创建:创建对象:实例成员:实例方法:类成员:静态方法:十、三大特征:封装、继承、多态十一、六大原则:Python基础学习笔记(二)一、下载Python官网:https......
  • 随机森林的可解释性分析(含python代码)
    随机森林的可解释性分析1.引言可解释性的重要性2.随机森林的原理2.1基本原理:2.2随机森林的实现3.随机森林的可解释性分析3.1特征重要性3.2特征重要性3.3SHAP值3.4部分依赖图(PDP)3.5交互特征效应3.6变量依赖图4.结论5.参考文献1.引言在机器学习领域,随机森林......
  • 【Python】模块
    1.模块的概念Python中有一种方法可以把定义放在一个文件里面,并在脚本或者解释器的交互实例中使用它们。这样的文件被称作Python的模块。2.自定义模块在Python中,自定义模块有两个作用,一个作用是规范代码,让代码更容易阅读;另一个作用是方便其他程序使用已经编写好的代码,提高开......
  • 计算机毕业设计-基于python的房屋租赁系统【源码+文档+PPT】
    精彩专栏推荐订阅:在下方主页......
  • 基于python高考志愿填报辅助系统【源码+文档+PPT】
    精彩专栏推荐订阅:在下方主页......
  • nb python 语法
    在bytesized32的开源代码里面看到了一个玄学内容。whileTrue:try:stream=call_gpt(stream=True,model=model,messages=messages,**kwargs)pbar=tqdm(stream,unit="token",total=kwargs.get("max_tokens",8*1024),leave=......