当前位置: 首页 > 知识库问答 >
问题:

在Python中进行Web抓取时,如何引用特定的ID?

宰父淳
2023-03-14

我正试图从网站上获取基本的股票信息:https://www.macrotrends.net/stocks/charts/AAPL/apple/financial-ratios

我的代码如下:

from requests import get
from bs4 import BeautifulSoup as bs

url =  'https://www.macrotrends.net/stocks/charts/AAPL/apple/financial-ratios'
response = get(url)
html_soup = bs(response.text, 'html.parser')

stock_container = html_soup.find_all("div", attrs= {'id': 'row0jqxgrid'})


print(len(stock_container))

现在我慢慢来,只是尝试返回id名为“row0jqxgrid”下的“div”编号。我非常确定第8行之前的一切都很好,但我不知道如何使用attrs正确地引用id,或者如果可能的话。

有人能提供任何信息吗?

罗斯

共有1个答案

马权
2023-03-14

您可以将selenium用于此作业:

from selenium import webdriver
import os


# define path to chrome driver
chrome_driver = os.path.abspath(os.path.dirname(__file__)) + '/chromedriver'
browser = webdriver.Chrome(chrome_driver)
browser.get("https://www.macrotrends.net/stocks/charts/AAPL/apple/financial-ratios")

# get row element
row = browser.find_element_by_xpath('//*[@id="row0jqxgrid"]')

# find all divs currently displayed
divs_list = row.find_elements_by_tag_name('div')

# get text from cells
for item in divs_list:
    print(item.text)

输出:

输出文本加倍,因为当您向右滚动底部时,表格数据会动态加载。

Current Ratio
Current Ratio
1.5401
1.5401
1.1329
1.1329
1.2761
1.2761
1.3527
1.3527
1.1088
1.1088
1.0801
1.0801
 类似资料:
  • 问题内容: 我在抓取该特定网页的数据时经历了可怕的时间…… 基本上,当我 在浏览器中加载URL并手动按F12键时,但是当我以编程方式 尝试执行此操作时,我可以在“ DOM Explorer”中看到所需的信息(参见下文)HTMLDoc不包含 我在“ DOM资源管理器”中看到的相同信息… 有人可以帮我访问“ DOM资源管理器”中的信息吗?我知道HTML并不总是您在浏览器中看到的,而是在浏器中创建可见内

  • 问题内容: 我试图从HTML中提取许多页面的数据(数字)。每个页面的数据都不同。当我尝试使用soup.select(’span [class =“ pull- right”]’)时,它应该给我编号,但只有标签出现。我相信这是因为网页中使用了Javascript。180,476是我要在许多页面上使用的特定HTML处的数据位置: 我的代码(这在很多页面上都是循环的): 输出: 范例网址:https:/

  • 问题内容: 我想从网站上获取每天的日出/日落时间。是否可以使用Python抓取网络内容?使用什么模块?有没有可用的教程? 问题答案: 结合使用urllib2和出色的BeautifulSoup库:

  • 这是我正在努力浏览的网站:https://clinicaltrials.gov/ct2/results?term=wound照顾 具体来说,我想获得每个研究标题的链接,转到该链接,然后浏览特定页面的“资格标准”部分。 这是我一直在使用的代码: 现在:显然,我可以使用BeautifulSoup来解析该页面,但这不是我的问题。页面没有抓取该url上表中的任何数据。我不太清楚为什么。。。我认为这与请求有

  • 问题内容: 基本上,如果我有一排以缩进开头的文本,那么获取该缩进并将其放入Python变量中的最佳方法是什么?例如,如果该行是: 然后它将返回“ \ t \ t”。或者,如果该行是: 然后它将返回四个空格。 因此,我想您可能会说,我只需要从字符串中去除所有内容,从第一个非空白字符到末尾。有什么想法吗? 问题答案: 要删除前导空格,请使用lstrip。 由于反对票可能会质疑正则表达式的效率,因此我进

  • 本文向大家介绍Python使用Scrapy框架进行抓取,包括了Python使用Scrapy框架进行抓取的使用技巧和注意事项,需要的朋友参考一下 示例 首先,您必须建立一个新的Scrapy项目。输入要存储代码并运行的目录: 要刮擦,我们需要一只蜘蛛。蜘蛛定义了如何刮除某个站点。以下是蜘蛛的代码,该代码遵循指向StackOverflow上投票最高的问题的链接,并从每个页面中抓取一些数据(源): 将您的