使用python不成功的一次爬虫

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

使用python不成功的一次爬虫_第1张图片
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请求时要求发送的不止用户名和密码,是一串如下

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

你可能感兴趣的:(使用python不成功的一次爬虫)