我正在尝试使用https://pypi.org/project/pymed/从发布的URL中提取发布的ID。
问题:尽管在整个for循环中都有适当的输入,但是我的“发布查询”显然只在第一次迭代时执行?请帮忙。
url_list = pd.Series of URLs, dtype='str'
ID_list = list(range(0, len(url_list)))
for i in url_list:
spider = Pubmed("MyTool", my_email)
url = url_list.iloc[i].to_string(index=False)
print(url) #CORRECTLY ITERATES
if re.search(pattern, url):
lookup = spider.query(url) #Unique <class itertools.chain object>
results = list(lookup) #Unique <'pymed.article.PubMedArticle' object>
ID = results.pop().pubmed_id
#OR
ID = results[0].pubmed_id
print(ID) #RETURNS ONLY THE FIRST ID
ID_list[i] = ID
else:
ID_list[i] = None
print("Extracted " + url + " with ID: " + ID)
我已经尝试在整个循环结束时将Spider和Lookup var设置为None,并在两者上都使用“ del VAR”。
什么也没有。无论出于何种原因,spider.query()方法仅从它被馈入的第一个URL中提取。请注意,我还尝试将Pubmed()蜘蛛放置在for循环之外,该循环可能应该到达的位置,但这是我试图做的透彻的尝试。
非常感谢您的帮助,对于造成此问题的任何问题或任何会给您造成痛苦和折磨的风格,我深表歉意。