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