【发布时间】:2015-01-14 17:25:16
【问题描述】:
我想自动化从 UCSC 基因组浏览器中提取信息的过程,以节省大量手动输入。以下代码得到我认为是表单的正确部分,但我无法提取结果:
from mechanize import Browser
from bs4 import BeautifulSoup
import requests
import re
br = Browser()
url = 'http://genome-euro.ucsc.edu/cgi-bin/hgTables?hgsid=201790284_dkwVYFu7V6ISmTzFGlXzo23aUhXk'
br.set_handle_robots( False )
for form in br.forms():
if form['position']:
print form['position']
form['position'] = 'chr9:21802635-21865969'
print form['position']
break
for form in br.forms():
if form['hgta_doTopSubmit']:
br.submit()
第一部分工作正常,改变了要查询的基因组的位置。第二部分似乎没有提交任何东西。它返回此错误:
Traceback(最近一次调用最后一次): 文件“C:\Documents and Settings\Silvia\Desktop\Copy\web_scraping\UCSC\table_browser_form.py”,第 26 行,在 br.submit() 提交中的文件“C:\Python27\lib\site-packages\mechanize-0.2.5-py2.7.egg\mechanize_mechanize.py”,第 541 行 返回 self.open(self.click(*args, **kwds)) 文件“C:\Python27\lib\site-packages\mechanize-0.2.5-py2.7.egg\mechanize_mechanize.py”,第 530 行,点击 请求 = self.form.click(*args, **kwds) AttributeError: 'NoneType' 对象没有属性 'click'
网站手动返回与该位置的详细信息相对应的文本屏幕,但我似乎无法在此处提取它。有人对如何解决这个问题有任何建议吗?我只需要存储输出的结果 - 相当于用户在网站上按下“获取结果”。非常感谢。
【问题讨论】:
标签: python web-scraping beautifulsoup mechanize