我有一个包含230个晶体结构空间组(字符串)的列表。我想写一个python脚本来从http://rruff.geo.arizona.edu/AMS/amcsd.php中为每个组提取文件。
我想让脚本迭代地搜索"Cell Parameters and Symmetry“搜索选项中的所有空间组,然后下载某个结构的文件(比如第一个)。
我的列表的一个示例看起来类似于spaceGroups = ["A-1","A2","A2/a","A2/m","..."]。组1的搜索格式看起来像这样,sg=A-1,结果看起来像http://rruff.geo.arizona.edu/AMS/result.php。
首先,我想知道这是否可能,如果可能,从哪里开始?
发布于 2020-01-14 03:45:35
当然,这是可能的。“干净”的方法是创建一个crawler来请求、下载和保存文件。
您可以对爬行器和Fiddler (https://www.telerik.com/fiddler)使用scrapy (https://docs.scrapy.org/en/latest/),以查看需要在爬行器中重新创建的请求。
本质上,您将使用空间组列表来生成对该页面上的表单的请求,在每次请求之后,您将解析响应,收集后续页面上的ID/下载urls 和(收集所有ID/下载urls)。最后,您将下载文件。
如果你不想使用scrapy,你可以创建自己的请求逻辑(https://requests.readthedocs.io/en/latest/user/quickstart/),但是scrapy可以更快地下载所有东西,并且有很多功能可以帮助你。
仔细阅读这个页面,你似乎只需要每个水晶的it,实际的下载urls很简单。
https://stackoverflow.com/questions/59722744
复制相似问题