urlReq = urllib2.Request(theurl)
urlReq.add_header('User-Agent',random.choice(agents))
urlResponse = urllib2.urlopen(urlReq)
htmlSource = urlResponse.read()
如何在一行中创建htmlSource,而不是多行?
答案 0 :(得分:9)
你无法真正做到这一点,唯一可能的事情是将响应和源放在同一行。或者你可以在语句之间使用;
,但这很难看。
但更重要的是,你为什么要那样做?为什么让它全部上线更好?
>>> import this
The Zen of Python, by Tim Peters
...
Readability counts.
...
答案 1 :(得分:6)
如何在一行中完成?这就是功能的用途。像这样:
def getsource(url):
urlReq = urllib2.Request(url)
urlReq.add_header('User-Agent',random.choice(agents))
urlResponse = urllib2.urlopen(urlReq)
return urlResponse.read()
现在你可以在一行中完成:
htmlSource = getsource(theurl)
完成!
更新
将htmlSource过滤为一个换行符(正如您现在声称的那样)是这样的:
htmlSource = htmlSource.replace('\n', '')
你可能需要
htmlSource = htmlSource.replace('\r', '')
也是。我真诚地怀疑它会加速任何事情。