首页 > 编程问答 >在 Chartink.com 上抓取网页

在 Chartink.com 上抓取网页

时间:2024-07-27 06:56:35浏览次数:13  
标签:python html web web-scraping beautifulsoup

请帮我抓取这个链接。 链接 - https://chartink.com/screener/time-pass-48 我正在尝试网络抓取,但它没有显示我想要的表格。请帮助我。

我已经尝试过这段代码,但它没有给我想要的结果。

import requests
from bs4 import BeautifulSoup

URL = 'https://chartink.com/screener/time-pass-48'
page = requests.get(URL)
print(page)

soup = BeautifulSoup(page.content, 'html.parser')
print(soup)

Chartink.com 上的数据是动态加载的,这意味着数据不是直接嵌入到 HTML 中,而是在页面加载后使用 JavaScript 获取的。像 BeautifulSoup 这样的库主要用于解析静态 HTML 内容,因此无法直接提取此类动态内容。

要抓取 Chartink.com 或其他任何依赖 JavaScript 加载数据的网站,你需要使用像 Selenium 或 Playwright 这样的工具,这些工具可以渲染网页并在浏览器中执行 JavaScript。这些工具使你能够与页面交互,就像真实用户一样,然后抓取渲染的内容。

以下是如何使用 Python 中的 Selenium 抓取数据的基本示例:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 用合适的路径替换你的 webdriver 路径
driver_path = "path/to/chromedriver"

driver = webdriver.Chrome(driver_path)
driver.get("https://chartink.com/screener/time-pass-48")

# 等待表格加载
table = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, "table.screener-table"))
)

# 打印表格数据
print(table.text)

# 关闭浏览器
driver.quit()

这段代码将:

  1. 打开 Chrome 浏览器。
  2. 导航到指定的 Chartink 筛选器页面。
  3. 等待表格加载。
  4. 打印表格的内容。
  5. 关闭浏览器。

你需要安装 Selenium 浏览器驱动程序和 Selenium Python 库:

pip install selenium

并在 https://chromedriver.chromium.org/downloads 为你的浏览器版本下载相应的驱动程序。

请记住,抓取网站时应始终遵守其使用条款和 robots.txt 文件。

标签:python,html,web,web-scraping,beautifulsoup
From: 68188760

相关文章

  • 使用Python进行PDF旋转
    使用python旋转扫描的pdf后,它工作得很好,但将pdf发送给第三方后,第三方仍然将pdf检测为90度pdf有什么办法可以解决旋转和这个问题importPyPDF2withopen('input.pdf','rb')asfile:#CreateaPDFreaderobjectreader=PyPDF2.PdfReader(file)......
  • Python win32serviceutil QueryServiceStatus:返回值是什么意思?
    我正在学习使用pywin32,并尝试在64位Python3.6.4上使用win32serviceutil模块以下代码:importwin32serviceutilasserviceserviceStatus=service.QueryServiceStatus("WinDefend")print(serviceStatus)返回以下元组:(16,4,197,0,0,0,0)我对wind......
  • Python request-html 未下载 Chromium
    importrequestsfrombs4importBeautifulSoupfromrequests_htmlimportHTMLSessionurl="https://dmarket.com/ingame-items/item-list/csgo-skins?title=recoil%20case"sesion=HTMLSession()response=sesion.get(url)response.html.render()soup=B......
  • VS Code 不改变 python 环境
    我正在使用VS-Code和anaconda环境作为python解释器。我通过ctrl+shift+`选择准确的anaconda基础环境,它也反映在vscode的下侧面板中。但是,当我检查python版本时,它显示我系统的默认python环境3.7.9如果您看到下面的截图,anaconda环境是3.......
  • 使用 Python 打开保存为 Parquet 文件中元数据的 R data.table
    使用R,我创建了一个Parquet文件,其中包含一个data.table作为主要数据,另一个data.table作为元数据。library(data.table)library(arrow)dt=data.table(x=c(1,2,3),y=c("a","b","c"))dt2=data.table(a=22222,b=45555)attr(dt,&......
  • Python 需要 Windows 长路径
    我尝试运行此安装:pip3installmsgraph-sdk它给了我这个错误:它说我需要使用此链接启用Windows长路径:https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry#enable-long-paths-in-windows-10-versi......
  • 使用 Selenium 时的 WebDriver 错误错误:OSError: [WinError 193] %1 不是有效的 Win32
    我正在使用文档中的代码:https://pypi.org/project/webdriver-manager/#use-with-chrome安装并升级所有软件包并运行下面的代码后:fromseleniumimportwebdriverfromselenium.webdriver.chrome.serviceimportServiceasChromeServicefromwebdriver_manager.......
  • Python griddata() 和 Matlab griddata():某些网格点的结果不同
    在将一些(相当大的物理)Matlab代码转换为Python时,我偶然发现了这种情况。当对相同的二维离散数据进行插值时,Python/Scipy的griddata()函数给出的结果与Matlab的对应函数不同。griddata()Matlab示例代码:Python示例代码:%Samplepoints(x,y):7x5=3......
  • Ebay Python SDK 仅在特定项目类别上返回错误
    我在一个项目中使用ebaySDK一段时间了。最近我尝试导入一些商品,例如手表、手机壳等...并且我使用了eBay自己通过eBay返回的英国商店页面上的类别ID他们的“get_category_suggestions”API端点,但eBay似乎有选择地决定拒绝某些项目并引发服务器错误!为了测试,我做了......
  • 使用特定的Python版本(MacOS)制作virtualenv
    我安装了brew,python3(默认和最新版本)和pip3,pyenv。TensorFlow现在不支持python3.7,所以我听说我应该制作一个独立运行3.6或更低版本的virtualenv。我安装了python3.6.7bypyenvinstall3.6.7但无法制作virtualenv-p3.6.7(mydir)因为3.6.7不在P......