Python 3.x 正在抓取数据,但url不变

Python 3.x 正在抓取数据,但url不变,python-3.x,web-scraping,scrapy,web-crawler,Python 3.x,Web Scraping,Scrapy,Web Crawler,我想使用python从以下网页抓取数据: 通过对过期日期和符号保持相同的值,但迭代开始日期的所有值。 问题是URL在所有组合中都保持不变,因此我无法获得要爬网的URL列表 有人知道我该如何做吗?要在Google Chrome中查看请求或响应HTTP头,请执行以下步骤: 在Chrome中,访问URL,右键单击,选择Inspect以打开开发者工具。 选择网络选项卡。 重新加载页面,在左侧面板上选择任何HTTP请求,HTTP标题将显示在右侧面板上。 就你而言 在谷歌浏览器中打开 单击鼠标右键,选择“检

我想使用python从以下网页抓取数据:

通过对过期日期和符号保持相同的值,但迭代开始日期的所有值。 问题是URL在所有组合中都保持不变,因此我无法获得要爬网的URL列表


有人知道我该如何做吗?

要在Google Chrome中查看请求或响应HTTP头,请执行以下步骤:

在Chrome中,访问URL,右键单击,选择Inspect以打开开发者工具。 选择网络选项卡。 重新加载页面,在左侧面板上选择任何HTTP请求,HTTP标题将显示在右侧面板上。 就你而言

在谷歌浏览器中打开 单击鼠标右键,选择“检查”,然后选择“网络”选项卡 现在,如果选择开始日期,您将在Headers选项卡下找到请求url。 同样,您可以在“响应”选项卡下查看响应。 以下是截图:

例如:

开始日期请求URL: 选项数据请求URL:
要在Google Chrome中查看请求或响应HTTP头,请执行以下步骤:

在Chrome中,访问URL,右键单击,选择Inspect以打开开发者工具。 选择网络选项卡。 重新加载页面,在左侧面板上选择任何HTTP请求,HTTP标题将显示在右侧面板上。 就你而言

在谷歌浏览器中打开 单击鼠标右键,选择“检查”,然后选择“网络”选项卡 现在,如果选择开始日期,您将在Headers选项卡下找到请求url。 同样,您可以在“响应”选项卡下查看响应。 以下是截图:

例如:

开始日期请求URL: 选项数据请求URL:
您试图解析的网站是动态的,这意味着当您在浏览器中下载它时,它会运行一些代码。在您的情况下,代码设置为在单击Get OptionData按钮时获取数据

实际上,您可以在浏览器开发工具的“网络”选项卡中看到浏览器获取数据。F12→ 网络→ 刷新页面→ 填写表格并单击获取选项数据。它将在网络选项卡列表中显示为XHR请求

数据获取的响应看起来有点像这样

从数据获取返回的数据被编码为JSON,幸运的是,它很容易用Python解析。您可以通过调查Network选项卡中的XHR请求来获得上述JSON代码,这是我的URL

https://www.discountoptiondata.com/freedata/getoptiondatajson?symbol=spx&datadate=2018-06-01&expirationDate=2018-06-15
我不熟悉scrapy,但对于基于JSON的解析,我建议使用“requests”模块。下面是一个示例程序,它将获取网页上显示的数据

导入请求 根目录URL=https://www.discountoptiondata.com/freedata/getoptiondatajson def fetch_选项_数据符号、数据日期、到期日期: response=requests.getROOT_URL,params={symbol:symbol,datadate:datadate,expirationDate:expiration_date} return response.json 数据=获取选项数据'spx','2018-06-01','2018-06-15' 对于数据中的项目: printAskPrice:,项目['AskPrice',最后价格:,项目[LastPrice]
您试图解析的网站是动态的,这意味着当您在浏览器中下载它时,它会运行一些代码。在您的情况下,代码设置为在单击Get OptionData按钮时获取数据

实际上,您可以在浏览器开发工具的“网络”选项卡中看到浏览器获取数据。F12→ 网络→ 刷新页面→ 填写表格并单击获取选项数据。它将在网络选项卡列表中显示为XHR请求

数据获取的响应看起来有点像这样

从数据获取返回的数据被编码为JSON,幸运的是,它很容易用Python解析。您可以通过调查Network选项卡中的XHR请求来获得上述JSON代码,这是我的URL

https://www.discountoptiondata.com/freedata/getoptiondatajson?symbol=spx&datadate=2018-06-01&expirationDate=2018-06-15
我不熟悉scrapy,但对于基于JSON的解析,我建议使用“requests”模块。下面是一个示例程序,它将获取网页上显示的数据

导入请求 根目录URL=https://www.discountoptiondata.com/freedata/getoptiondatajson def fetch_选项_数据符号、数据日期、到期日期: response=requests.getROOT_URL,params={symbol:symbol,datadate:datadate,expirationDate:expiration_date} return response.json 数据=获取选项数据'spx','2018-06-01','2018-06-15' 对于数据中的项目: printAskPrice:,项目['AskPrice',最后价格:,项目[LastPrice]