gpt4 book ai didi

javascript - 抓取当前打开的网页或使用其他方法获取实时 HTML?

转载 作者:行者123 更新时间:2023-11-28 05:23:46 25 4
gpt4 key购买 nike

我需要从仅在您登录网站时出现的 HTML 标记获取一些数据。我需要用 Python 或 Javascript 来完成。 Javascript 的障碍是跨源浏览器策略(CORS)。

我无法使用服务器端代码。我无法使用 iframe。

如果您在 Chrome 或 FireFox 中打开页面 URL,则可以轻松获得数据,因为它会让您保持登录状态,就像 Facebook 一样,因此我们将使用它作为示例。我们会说我想从 Facebook 新闻源的第一个元素获取数据。

我尝试抓取网页并使用 Python urllib 模块传入用户代理值。我尝试过使用 Yahoos YQL 工具和 Javascript。两者都返回了我想要的 HTML,但没有包含我需要的值。这是因为它没有使用我的浏览器来执行此操作,浏览器存储了填充我需要的值所需的 cookie。

那么有没有办法抓取已经打开的网页呢?假设我打开了 Facebook,并运行了一些代码从浏览器获取新闻源数据。

是否还有其他我没有提到的方法可以实现此目的?

背景:我正在为论坛创建一个自动导视广告(在网站规则内),并且需要从网站 HTML 生成一些值,但所有者不会为此提供任何合作。

最佳答案

您可以使用 python selenium webdriver 尝试以下操作,因为它允许您登录并获取 html 源代码。

您必须先 pip install selenium 并从 selenium 网站 http://docs.seleniumhq.org/ 下载 chromedriver.exe

这是我在 gmail 上使用的示例代码:

from selenium import webdriver

#you have to download the chromedriver from selenium hq homepage
chromedriver_path = r'your chromedriver.exe path here'
#create webdriver object and get url
driver = webdriver.Chrome(chromedriver_path)
driver.implicitly_wait(1)
driver.get('https://www.google.com/gmail')

#login
driver.find_element_by_css_selector('#Email').send_keys('email@gmail.com')
driver.find_element_by_css_selector('#next').click()
driver.find_element_by_css_selector('#Passwd').send_keys('1234')
driver.find_element_by_css_selector('#signIn').click()


#get html
html = driver.page_source

关于javascript - 抓取当前打开的网页或使用其他方法获取实时 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40325411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com