python - Scrapy 返回“Last Modified”日期错误:“KeyError: 'last-modified'”/“ValueError: year 1610477971 is out of range”
问题描述
我正在尝试使用 Scrapy 返回一组 URL 的“最后修改”日期。但是,我返回一个错误,指出:KeyError:'last-modified'。具体来说,如下:
File "C:\spider.py", line 460, in fetch_dates
url_time = r.headers['last-modified']
File "C:\structures.py", line 52, in __getitem__
return self._store[key.lower()][1]
KeyError: 'last-modified'
我为此使用的代码是:
def fetch_dates(self, response):
url = response.url
r = requests.head(response.url)
url_time = r.headers['last-modified']
url_date = parsedate(url_time)
for url in url_date:
if os.path.exists('1url-to-date.csv'):
append_write = 'a'
else:
append_write = 'w'
with open('1url-to-date.csv', append_write) as url_f:
url_f.write(url_time + "&,&" + url + "\n")
return Item()
该代码也没有生成我的 csv 文件或返回我需要的信息。有什么建议么?谢谢!
编辑:我修改为以下内容;
def fetch_dates(self, response):
url = response.url
r = requests.head(response.url)
url_time = r.headers.get("last-modified", str(time.time()))
url_date = parsedate(url_time)
for url in url_date:
if os.path.exists('1url-to-date.csv'):
append_write = 'a'
else:
append_write = 'w'
with open('1url-to-date.csv', append_write) as url_f:
url_f.write(url_time + "&,&" + url + "\n")
return Item()
但是,现在我收到了这个新错误:“ValueError: year 1610477971 is out of range”。任何建议都会非常有帮助。谢谢!
解决方案
推荐阅读
- python - 在 pandas 数据框中删除多个条件下的行(基于 2 列)
- linux - 如何根据模式从集群中 grep/awk 多行?
- python-3.x - 如何使用 request-mock 来测试带有请求的自定义身份验证处理程序?
- python - 如何在 Heroku(使用 python)上的 web 和 worker(不同的 dynos)之间通信数据?
- bash - 带 bash 的条件否定
- javascript - 用第一个模态替换第二个模态
- javascript - 无法从搜索页面抓取所有结果
- javascript - 当函数包含异步操作时,如何按顺序对同一函数进行多次调用
- sql - 用于仅屏蔽第一个 5 字符值的 sql 查询
- postgresql - 如何授予 lambda 权限以在 Aurora Postgresql 数据库中创建行?