使用python不成功的一次爬虫

遇到下载美国冰雪数据中心的数据过程中出现的问题。https://n5eil01u.ecs.nsidc.org/MOST/MOD10A2.006/,如图这个地址。
地址下有这样接近6000个文件夹,需要每个文件夹有100多个数据,需要提取每一天中的4个数据。

MOST/MOD10A2.006格式

于是想用爬虫来解决
找到了这两篇入门教学【爬虫其实很简单】requests 与 beautiful soup基础入门【爬虫其实很简单】模拟登陆与文件下载,理论上是能解决我的问题。但实际操作还是遇到了各种各样的问题。
目前的代码是这样的

import requests
from bs4 import BeautifulSoup

data = {
    'username': 'qiuyang1001',
    'password': 'ZHAOqiuyang1001',
    'authenticity_token': 'sY2F0quYmynvGEdI0G2sWdZkQPeBacnmW/7HzOy653envjX/Y88ZPYxb8JIW2FXkLmPOQvjPelk1jIVNGaok0Q==',
}

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36'}

s = requests.Session()
r = s.post('https://urs.earthdata.nasa.gov/login', data)
print(r.url)


d = s.get('https://n5eil01u.ecs.nsidc.org/MOST/MOD10A2.006/')
soup = BeautifulSoup(d.text, 'lxml')
print(d.text)
tds = soup.find_all("td", class_='indexcolname')
for td in tds:
    url = div.a.get('href')
    print(url)

后来发现在https://urs.earthdata.nasa.gov/login里post请求时要求发送的不止用户名和密码,是一串如下

data form
于是对post的data进行了修改。终于读出了d = s.get('https://n5eil01u.ecs.nsidc.org/MOST/MOD10A2.006/')
接下去是读td class=indexcolname 下面 <a href>的url ,然后进去循环读出每个文件的url。再用筛选工具筛选出自己需要的url,然后下载。
后来发现在NASA 登陆后可以直接用工具选取你需要的区域的数据和各类数据。然后导出url表,进行下载。
于是就没有继续爬虫的研究。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,837评论 18 139
  • 33款可用来抓数据的开源爬虫软件工具 要玩大数据,没有数据怎么玩?这里推荐一些33款开源爬虫软件给大家。 爬虫,即...
    visiontry阅读 7,376评论 1 99
  • 爬虫文章 in 简书程序员专题: like:128-Python 爬取落网音乐 like:127-【图文详解】py...
    喜欢吃栗子阅读 21,916评论 4 411
  • 小侄子长得真快,已经要上一年级了。哥哥嫂子却为了选学校而为难了。听了哥哥的说明,我才知道,他们在考虑教育环境方面的...
    隋源阅读 890评论 3 1
  • 我不学医,专业也和医学不搭界,只是文傻一枚。除了退休的爷爷奶奶曾当过神经外科医生,家里也没有从医的人士。可是我的身...
    李子李子短信阅读 913评论 2 17