使用python開發簡單的貼吧爬蟲代碼及python ide問題

貼吧例子代碼來源於csdn網站,感謝作者技術分享,受益匪淺。

#encoding=utf8
import string, urllib2

def baidu_tieba(url, begin_page, end_page):
for i in range(begin_page,end_page+1):
sName = string.zfill(i,5)+'.html'
print '正在下載'+str(i)+ '個網頁'
f = open('data/'+sName,'w+')
m = urllib2.urlopen(url+str(i)).read()
f.write(m)
f.close()

# bdulr = 'http://tieba.baidu.com/p/2296017831?pn='
bdulr = 'http://tieba.baidu.com/p/2494746884?pn='

begin_page = 1
end_page = 10

# bdulr = str(input(u'please input url:\r\n'))

# begin_page = int(input(u'input start pagenum'))
# end_page = int(input(u'end page num'))

baidu_tieba(bdulr,begin_page,end_page)



碰到的一個問題就是:
sublime2, 對raw_input()的總是提示:error, 貌似沒有好的解決辦法
然後使用eclipse, pydev, 但是很多時候api不支持,總是提示出錯,比如

 
from twisted.internet.protocol import Protocol,Factory
from twisted.internet import reactor


class Echo(Protocol):

def dataReceived(self, data):
self.transport.write('hello: {}'.format(data))

class EchoFactory(protocol.Factory):
def buildProtocal(self,addr):
return Echo()

def connectionLost(self, reason):
print 'connect lost',reason


def main():
f = Factory()
f.protocol = Echo
reactor.listenTCP(8000,f) #語法提示錯誤,不影響執行
reactor.run()

if __name__ == '__main__':
main()


另外一種情況就是編譯出錯,比如

import binascii
import socket
import struct
import sys

#create a TCP/IP socket
# sock = socket.socket(socket.AF_INET6,socket.SOCK_STREAM)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

server_addr = ('',10000)
sock.bind(server_addr)
sock.listen(10)

unpacker = struct.Struct('I 2s f')

while True:
print >>sys.stderr , '\n waiting for a client'
conn, client_addr = sock.accept()

try:
data = conn.recv(unpacker.size())

unpacked_data = unpacker.unpack(data)

finally:
conn.close()

報錯信息如下:
Traceback (most recent call last):
File "/Users/chenxu/work/python/pythontutorial/src/socket/server.py", line 14, in <module>
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
AttributeError: 'module' object has no attribute 'socket'

但是上面的代碼使用sublime可以運行。

綜合的辦法就是
1. 使用eclipse, pydev來編寫代碼,這個ide有強大的代碼補全功能,對於不熟悉python語法的人來說是福音
2. 使用sublime來運行代碼,Command+b 運行快捷鍵
人生不如意,十有八九。
接受不能改變的事情吧。
發佈了29 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章