“缺失”/隐藏的 HTML 代码阻碍了 Webscraper 开发
Posted
技术标签:
【中文标题】“缺失”/隐藏的 HTML 代码阻碍了 Webscraper 开发【英文标题】:"Missing"/Hidden HTML Code Stalling Webscraper Development 【发布时间】:2022-01-23 07:15:12 【问题描述】:我是一名新手程序员,试图创建一个网络抓取程序,最终目标是加快 NASA EarthData 程序的 .ict 和 .csv 文件之间的转换速度。我计划使用 BeautifulSoup Python 库从网页中收集数据,然后将其转换为表格,然后将其转换为 .csv 文件。我计划转换的第一个链接是: https://asdc.larc.nasa.gov/data/AJAX/O3_1/2018/02/28/AJAX-O3_ALPHA_20180228_R1_F220.ict
在打开 Chrome 的 DevTools 以查找列后面的 html 代码时,我惊讶地发现缺少代码: Lack of HTML Data
有人可以帮我理解通过.ict文件解析然后获取这些数据转换成表格的方式吗?
理想情况下,我打算有 7 列('Int_Start'、'Int_End'、'TIME'、'G_Lat'、'G_Lon'、'G_Alt'、'O3')。 在每一列下,我计划将图像中看到的七列中的所有值分配给它们各自的列,然后我将它们导出到一个 .csv 文件。
该网站位于 NASA EarthData 身份验证墙后面,我已使用以下代码登录:
link = 'https://urs.earthdata.nasa.gov/login'
with requests.Session() as s:
s.headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36'
r = s.get(url)
soup = BeautifulSoup(r.text,"lxml")
payload = i['name']:i.get('value','') for i in soup.select('input[name]')
payload['username'] = 'username'
payload['password'] = 'password'
# For the program to work, each user will need to input their username and password in the lines above.
res = s.post(link,data=payload)
res = s.get(url)
print(res.text)
我在其中插入我的个人信息作为有效负载用户名和密码。对于其他库使用或如何访问数据的 HTML 的任何建议将不胜感激。谢谢。
【问题讨论】:
【参考方案1】:我可以通过添加代码来解决问题:
html_data = res.text
soup = BeautifulSoup(html_data, 'lxml')
print(soup.prettify())
在下一个单元格中。共有三个标签:<HTML>
、<body>
和 <p>
。
【讨论】:
以上是关于“缺失”/隐藏的 HTML 代码阻碍了 Webscraper 开发的主要内容,如果未能解决你的问题,请参考以下文章