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()
展开
 我来答
wanghan519
2013-10-11 · TA获得超过7820个赞
知道小有建树答主
回答量:1285
采纳率:60%
帮助的人:560万
展开全部
post_data怎么写的,用firefox里面的firebug控件看这个网页的post动作,post_data超多,里面好几项是关于翻页的。
更多追问追答
追问
我是用火狐httpfox抓包的,post data里的确超多,由于本人对HTTP协议也了解的不是很多,所以没敢摘选,就是全部摘过来做成dict.
追答
你抓几个不同的页数,会发现有几个数正好是你翻到的页数,找出规律,用python一页页翻吧。
另外,有个display settings,里面选xml,一页显示200条,就没有广告了,更方便python解析。

而且,我用get方法,直接把那超长的postdata加个问号放到url里面后,一样能行。

还有,你有没有想过不用python,用yql一句话搞定。。。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式