擅长:python、mysql、java
<p>您无法提取此下拉列表的原因是,此列表是动态生成的,最简单的方法是将html内容保存到文件中,并在文本编辑器中手动查看</p>
<p>但是,您可以使用一些丑陋的正则表达式从脚本源代码中解析这些日期,这些代码位于同一个html文件中。例如,这似乎有效:</p>
<pre><code>import requests, re
from datetime import *
content = requests.get('https://ca.finance.yahoo.com/quote/AAPL/options').content.decode()
match = re.search(r'"OptionContractsStore".*?"expirationDates".*?\[(.*?)\]', content)
dates = [datetime.fromtimestamp(int(x), tz=timezone.utc) for x in match.group(1).split(',')]
for d in dates:
print(d.strftime('%Y-%m-%d'))
</code></pre>
<p>很明显,以如此恶劣的方式解析东西并不是万无一失的,而且很可能很快就会崩溃。但是,对于任何类型的网络抓取,也可以这样说</p>