【发布时间】:2021-04-11 09:35:20
【问题描述】:
我正在尝试使用 Python 从动态网站中提取投资新闻文章。我已经尝试了一些适用于静态网站的教程,但是在将 URL 拉到特定文章时遇到了问题。我正在使用的代码如下:
from requests_html import HTMLSession
session = HTMLSession()
r = session.get('https://www.institutionalinvestor.com/search?'
'term=&' # eventually, the term would include the words I am actively searching for
'filters=%7B"dates":%5B"last%20week"%5D%7D') # filter to the last week, this would eventually be for the last 24 hours only
r.html.absolute_links
这让我以数组格式获得页面内的链接列表:
{'https://www.institutionalinvestor.com/Login', 'https://www.institutionalinvestor.com/display-advertising', 'http://www.ttivanguard.com/', 'https://www.riaintel.com/', 'http://interactive.institutionalinvestor.com/executive-IR-research-em/about-586KX-2742AB.html', 'https://twitter.com/iimag', 'https://myaccount.institutionalinvestor.com/Orders/SelectPackage.html', 'https://www.institutionalinvestor.com/', 'https://www.institutionalinvestor.com/Corner-Office', 'https://www.institutionalinvestor.com/Management', 'http://iimemberships.com/', 'http://www.iiconferences.com/', 'https://www.institutionalinvestor.com/Register', 'https://www.institutionalinvestor.com/cookies', 'https://www.institutionalinvestor.com/Careers', 'https://www.institutionalinvestor.com/Custom-Research', 'https://www.institutionalinvestor.com/Portfolio', 'https://www.euromoneyplc.com/modern-slavery-act-transparency-statement', 'https://www.institutionalinvestor.com/research', 'https://www.institutionalinvestor.com/Masthead', 'https://www.institutionalinvestor.com/about-thought-leadership', 'https://www.institutionalinvestor.com/Investors', 'https://www.institutionalinvestor.com/Premium', 'https://www.institutionalinvestor.com/about-us', 'https://www.institutionalinvestor.com/thought-leadership', 'https://www.institutionalinvestor.com/PrivacyPolicy', 'https://www.institutionalinvestor.com/sponsored', 'https://www.institutionalinvestor.com/Video', 'https://www.institutionalinvestor.com/How-to-Pitch-Institutional-Investor', 'https://www.institutionalinvestor.com/FAQs', 'https://www.institutionalinvestor.com/Research-FAQs', 'https://www.institutionalinvestor.com/Reprints', 'https://www.institutionalinvestor.com/TermsConditions', 'https://www.linkedin.com/company/164389', 'https://www.facebook.com/iimag', 'https://www.institutionalinvestor.com/Customer-Service', 'https://www.institutionalinvestor.com/Culture', 'https://www.institutionalinvestor.com/awards', 'https://www.institutionalinvestor.com/Research-Insight', 'http://www.sovereignwealthcenter.com/'}
但我找不到文章本身的链接。当我检查源代码时,我看到的是这样的:
<div class="search-results" role="listbox">
<article class="search-result" ng-repeat="article in serverData.hits.results">
<div class="search-result-text-ghost"></div>
<h2 ng-class="article|publicationClass"><a ng-href="{{article|articleHref}}">{{article|snippet:'title'|removeHtmlTags}}</a>
</h2>
作为一个对 HTML 比较陌生的人,最后的 h2 部分让我相信该网站是动态的,这就是我卡住的地方。任何帮助,将不胜感激。我对这个问题的理想输出是获取文章的标题、来源(在本例中为“机构投资者”)、文章的预览(前几行左右,以及文章的 URL 到数据框中可以每天早上发送给我以节省时间,否则我将花费手动提取新闻。我已经将项目的其余部分放在一起,除了我正在使用的 API 中未包含的机构投资者等网站的新闻拉取之外.
如有必要或推荐,我对任何和所有新方法持开放态度。提前谢谢!
【问题讨论】:
标签: python html json web-scraping finance