
python 在NCBI上抓取文献 利用POST提交表单进行翻页动作
LZ想利用python在NCBI主页上查询thyroid相关的文献PMID号,但是每页只能显示20篇文献,无奈下只能写程序通过提交表单实现翻页操作。自己写了代码但是总是提...
LZ想利用python在NCBI主页上查询thyroid相关的文献PMID号,但是每页只能显示20篇文献,无奈下只能写程序通过提交表单实现翻页操作。自己写了代码但是总是提交失败,希望懂python的朋友帮帮忙.
http://www.ncbi.nlm.nih.gov/pubmed/
以下是自己尝试写的代码
import urllib,urllib2,socket
socket.setdefaulttimeout(30)
headers={ooo}
post_data={xxx}
params=urllib.urlencode(post_data)
url='http://www.ncbi.nlm.nih.gov/pubmed/'
req=urllib2.Request(url,params)
f=urllib2.urlopen(req)
print f.read() 展开
http://www.ncbi.nlm.nih.gov/pubmed/
以下是自己尝试写的代码
import urllib,urllib2,socket
socket.setdefaulttimeout(30)
headers={ooo}
post_data={xxx}
params=urllib.urlencode(post_data)
url='http://www.ncbi.nlm.nih.gov/pubmed/'
req=urllib2.Request(url,params)
f=urllib2.urlopen(req)
print f.read() 展开
1个回答
展开全部
post_data怎么写的,用firefox里面的firebug控件看这个网页的post动作,post_data超多,里面好几项是关于翻页的。
更多追问追答
追问
我是用火狐httpfox抓包的,post data里的确超多,由于本人对HTTP协议也了解的不是很多,所以没敢摘选,就是全部摘过来做成dict.
追答
你抓几个不同的页数,会发现有几个数正好是你翻到的页数,找出规律,用python一页页翻吧。
另外,有个display settings,里面选xml,一页显示200条,就没有广告了,更方便python解析。
而且,我用get方法,直接把那超长的postdata加个问号放到url里面后,一样能行。
还有,你有没有想过不用python,用yql一句话搞定。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询