爬蟲學習心得

爬蟲學習心得

ID:42356588

大?。?83.12 KB

頁數(shù):31頁

時間:2019-09-13

爬蟲學習心得_第1頁
爬蟲學習心得_第2頁
爬蟲學習心得_第3頁
爬蟲學習心得_第4頁
爬蟲學習心得_第5頁
資源描述:

《爬蟲學習心得》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫

1、爬蟲學習心得陳思哲233201222038172012級計算機一班原來的代碼有幾點我們要改的1.區(qū)號,點評網(wǎng)為不同的商區(qū)編訂不同的號,而且值得注意的是它通常不是連著的,像開始時我們模仿北京的編號就一連串下來,那是錯誤的。我個人采取的方法是一個區(qū)一個區(qū)的爬,那怎么知道區(qū)號呢?在網(wǎng)址最上方的最后有一個r1841那么就代表著鼓浪嶼的區(qū)號,由于要求是一個區(qū)建一個文件,那么鼓浪嶼就可以和別的思明區(qū)的編號建在一個列表里。2.指定一個文件來存放爬出來的信息,這些信息會以txt格式來保存。f=open('D:/dianp

2、ing/'+str(time.strftime(ISOTIMEFORMAT))?+'.txt','a+')這個就是多IP爬蟲,一個IP很容易就被發(fā)現(xiàn)并禁止這個就是多客戶端爬蟲,單一個的客戶端很容易被發(fā)現(xiàn)并禁掉之后介紹一下搜索的方式,老師給的代碼是一種典型的深度優(yōu)先搜索importurllib2,urlliburllib2模塊定義的函數(shù)和類幫助打開url(主要是HTTP)在一個復雜的世界-基本和簡要身份驗證,重定向,cookie和更多。importre正則表達式importtime提供各種時間函數(shù)impor

3、tstring字符串處理的函數(shù)improtrequest與urlib差不多,更簡單importsocket套接字套接字是為特定網(wǎng)絡協(xié)議(例如TCP/IP,ICMP/IP,UDP/IP等)套件對上的網(wǎng)絡應用程序提供者提供當前可移植標準的對象。它們允許程序接受并進行連接,如發(fā)送和接受數(shù)據(jù)。為了建立通信通道,網(wǎng)絡通信的每個端點擁有一個套接字對象極為重要。Python中的random模塊用于生成隨機數(shù)。importuser_agents這個比較特殊,是人為定義的庫,這個庫存儲了許多IP或是對點評網(wǎng)的訪問方式,目的

4、就是隨機選一個IP訪問以避免網(wǎng)站對單一IP登陸的封殺。timeout=60socket.setdefaulttimeout(timeout)#設置HTTP或Socket訪問超時,來防止爬蟲抓取某個頁面時間過長。(這個時間用秒#來算)defget_status(url):r=requests.get(url,allow_redirects=False)#allow_redirects=False不允許間接地訪問,用request庫中的get函數(shù)來抓取URLreturnr.status_code#獲取網(wǎng)頁內容

5、defcontent_get(url):try:#“#”是注釋的意思#proxy_ip=random.choice(proxyIP.proxy_list)#printproxy_ip#proxy_support=urllib2.ProxyHandler(proxy_ip)#opener=urllib2.build_opener(proxy_support,urllib2.HTTPHandler)#urllib2.install_opener(opener)req=urllib2.Request(url)#

6、這個類是一個抽象的URL請求。user_agent=random.choice(user_agents.user_agents)#在剛才的user_agents里面隨機找一個登錄方法req.add_header('User-Agent',user_agent)req.add_header('Referrer',url)printuser_agent#python的輸出函數(shù)是printpage=urllib2.urlopen(req)content=page.read()page.close()return

7、content#正常的話就用content來保存讀出的結果并且一定要關閉文件并返回contentexceptUnicodeDecodeErrorase:print('-----UnicodeDecodeErrorurl:',url)return''#解碼錯誤則輸出并返回空excepturllib2.HTTPErrorase:print("-----HTTPErrorurl:",url)return''#網(wǎng)站禁止爬蟲則輸出并返回空exceptsocket.timeoutase:print("-----soc

8、kettimout:",url)return''#抓取超時則輸出并返回空excepturllib2.URLError,e:ifhasattr(e,'reason'):print'Failedtoreachaserver.'print'Reason:',e.reasonreturn''elifhasattr(e,'code'):#"elif"相當于elseifprint'Theservercouldn'tfulfillther

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。