【问题标题】:WebScraping javascript page in python网页抓取 javascript 页面在 python
【发布时间】:2020-03-06 13:35:21
【问题描述】:

你好,世界,

Python 中的新手,我正在尝试抓取一个 javascript 页面:https://search.gleif.org/#/search/

请在下面从我的代码中找到结果(使用请求)

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"/>
<meta content="width=device-width,initial-scale=1" name="viewport"/>
<title>LEI Search 2.0</title>
<link href="/static/icons/favicon.ico" rel="shortcut icon" type="image/x-icon"/>
<link href="https://fonts.googleapis.com/css?family=Open+Sans:200,300,400,600,700,900&amp;subset=cyrillic,cyrillic-ext,greek,greek-ext,latin-ext,vietnamese" rel="stylesheet"/>
<link href="/static/css/main.045139db483277222eb714c1ff8c54f2.css" rel="stylesheet"/></head>
<body>
<div id="app"></div>
<script src="/static/js/manifest.2ae2e69a05c33dfc65f8.js" type="text/javascript"></script>
<script src="/static/js/vendor.6bd9028998d5ca3bb72f.js" type="text/javascript"></script>
<script src="/static/js/main.5da23c5198041f0ec5af.js" type="text/javascript"></script>
</body>
</html>

问题: 而不是检索上述脚本:
"src="/static/js/manifest.2ae2e69a05c33dfc65f8.js" type="text/javascript""

我想要表格的内容以便存储它。

我要抓取的表格

【问题讨论】:

  • 你到底想找到什么?
  • 那么问题是如何在 selenium 中设置代理身份验证?您可以通过谷歌搜索并找到一些解决硒限制的方法。
  • @pguardiario 问题是如何获取表格内容而不是 js.script。如果您有任何提示?
  • @SuperStormer,我想刮桌子,但我没有得到脚本 js。你知道如何处理它吗?
  • 你会为此使用硒。

标签: javascript python selenium beautifulsoup request


【解决方案1】:

以下代码使用PySelenium编写。

import time
from selenium import webdriver

country = []
legal_name = []
lei = []

driver = webdriver.Chrome()
driver.implicitly_wait(5)

for i in range(1,30395):
    driver.get('https://search.gleif.org/#/search/fulltextFilterId=LEIREC_FULLTEXT&currentPage='+str(i)+'&perPage=50&expertMode=false#results-section')

    time.sleep(5)

    country += [i.get_attribute('innerHTML') for i in driver.find_elements_by_xpath('//*[@class="table-cell country"]/a')]
    legal_name += [i.get_attribute('innerHTML') for i in driver.find_elements_by_xpath('//*[@class="table-cell legal-name"]/a')]
    lei += [i.get_attribute('innerHTML') for i in driver.find_elements_by_xpath('//*[@class="table-cell lei"]/a')]

登录(使用相应的元素进行更改。)

driver.find_element_by_id("UserName").send_keys("xxxx")
driver.find_element_by_name("Password").send_keys("yyyy")
driver.find_element_by_class("loginButton").click()

获取页面内容

print(driver.page_source)

【讨论】:

  • 非常感谢它有效 :) 还有 2 个问题:如何设置我的用户名和密码(firefox 每次都要求我进行身份验证)。此外,我怎样才能只显示结果的内容(如 request.content?)
  • @Annis15 编辑了答案以包含您的 2 个问题。
  • 再次感谢内容页面。但是,当我尝试添加您的代码 find_element_by_id 时,没有任何反应(使用我的用户名和密码)。我试图通过“用户名:”更改“用户名”(firefox 弹出窗口如何显示它)但没有。不过第一个问题解决了,现在只是在优化脚本。
  • @Annis15 您能否提供您尝试抓取的页面 URL,以便我可以为您提供准确的登录代码。
  • 页面和你抓取的一样:driver.get('search.gleif.org/#/search/…)
猜你喜欢
  • 2011-12-24
相关资源
最近更新 更多