[英]Getting 500 internal server error while using fileConfig in python
[英]While downloading a file from a website using python and webkit getting HTTP Error 500: Server Error
我正在尝试从网站www.nsf.gov下载文件。 在浏览器中,首先我必须提出搜索请求,然后必须单击导出文件选项以下载文件。
如果我尝试手动执行此操作,则首先必须粘贴搜索请求的网址。然后,我需要在浏览器中粘贴导出网址。如果不执行第一个过程,则会显示以下消息:
服务器错误
该服务器遇到内部错误,因此无法满足您的请求。 最可能的原因是配置错误。 请要求管理员在服务器的错误日志中查找消息。
因此,以编程方式使用Webkit可以执行以下操作,但是仍然会出现以下错误:
urllib2.HTTPError:HTTP错误500:服务器错误。
请帮助我...我现在为此苦苦挣扎了一个星期。 这是我的代码:
#!/usr/bin/env python
import sys
import signal
from optparse import OptionParser
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import QWebPage
from bs4 import BeautifulSoup
import urllib2
import shutil
import urlparse
import os
class Crawler( QWebPage ):
def __init__(self,url_name,file_name):
QWebPage.__init__( self )
self._url = url_name
self._file = file_name
def crawl( self ):
signal.signal( signal.SIGINT, signal.SIG_DFL )
self.connect( self, SIGNAL( 'loadFinished(bool)' ), self._finished_loading )
self.mainFrame().load( QUrl( self._url ) )
def _finished_loading( self, result ):
file = open( self._file, 'w' )
file.write( self.mainFrame().toHtml() )
file.close()
self.process( self.mainFrame().toHtml())
file_download('http://www.nsf.gov/awardsearch/ExportResultServlet?exportType=txt','result.txt')
sys.exit( 0 )
def process(self,content):
html_doc=content
soup = BeautifulSoup(html_doc)
soup=soup.prettify()
def main():
url_name='http://www.nsf.gov/awardsearch/advancedSearchResult?PIId=&PIFirstName=&PILastName=&PIOrganization=&PIState=&PIZip=&PICountry=&ProgOrganization=&ProgEleCode=&BooleanElement=All&ProgRefCode=&BooleanRef=All&Program=&ProgOfficer=&Keyword=&AwardNumberOperator=Range&AwardNumberFrom=1&AwardNumberTo=20000&AwardAmount=&AwardInstrument=&ActiveAwards=true&OriginalAwardDateOperator=&StartDateOperator=&ExpDateOperator='
file_name='NSF Award Search: Advanced Search Results1.html'
app = QApplication( sys.argv )
crawler = Crawler(url_name,file_name)
crawler.crawl()
sys.exit( app.exec_() )
def file_download(url, fileName):
r = urllib2.urlopen(urllib2.Request(url))
try:
fileName = fileName
with open(fileName, 'wb') as f:
shutil.copyfileobj(r,f)
finally:
r.close()
if __name__ == '__main__':
main()
您可以这样做,但是首先需要设置'queryText'变量,需要此字符串变量来搜索内容...
您可以使用以下URL进行测试,其中“ body”是查询字符串:
http://www.nsf.gov/awardsearch/ExportResultServlet?exportType=txt&queryText=body&ActiveAwards=true
然后,您需要在代码中使用此arg来获取数据,我们称之为查询:
def _finished_loading( self, result, query ):
URL = 'http://www.nsf.gov/awardsearch/ExportResultServlet?exportType=txt&queryText=' + query + '&ActiveAwards=true'
file = open( self._file, 'w' )
file.write( self.mainFrame().toHtml() )
file.close()
self.process( self.mainFrame().toHtml())
file_download(URL,'result.txt')
sys.exit( 0 )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.