<p><em>请注意,</em>,您不需要使用<code>selenium</code>来执行此类任务,因为它会降低您的进程</p>
<p>在真实场景中,我们只使用<code>selenium</code>绕过浏览器检测,然后将cookie传递给任何HTTP模块以继续操作</p>
<p>关于您的任务,我注意到有一个<code>API</code>实际上为<code>HTML</code>源提供了信息</p>
<p>这是一个快速呼叫</p>
<pre><code>import pandas as pd
import requests
def main(url):
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0"
}
params = {
'tableonly': 'true',
'limit': 1000
}
r = requests.get(
'https://api.nasdaq.com/api/screener/stocks', params=params, headers=headers)
goal = pd.DataFrame(r.json()['data']['table']['rows'])
print(goal)
goal.to_csv('data.csv', index=False)
if __name__ == "__main__":
main('https://api.nasdaq.com/api/screener/stocks')
</code></pre>
<blockquote>
<p>Note that each page contain 25 ticker. Within my code, I've fetched <code>1000/ 25</code> = 40 Pages.</p>
</blockquote>
<p>您不需要在这里循环<code>pages</code>。因为你可以通过增加限制来互动</p>
<p>但是如果您想使用<code>for</code>循环,那么您必须循环以下内容</p>
<p>并保持偏移量</p>
<pre><code>https://api.nasdaq.com/api/screener/stocks?tableonly=true&limit=25&offset=0
</code></pre>