本文目錄一覽:
用python寫一個爬蟲有多難
爬蟲是互聯網上最常見的一種東西了吧。
爬蟲這東西每天都在網上爬大量的信息,各大搜索引擎廠商每天都有上百萬的爬蟲在網絡上活動,這些爬蟲的作用就是給搜索引擎採集互聯網上最新的內容,採集來的內容經過分類、加工之後,進入搜索引擎的索引。這是爬蟲最常見的應用。
關於搜索引擎的理論非常多,應該已經形成系統的理論和方法了。這裡不再多追求搜索引擎的細節,只來看看爬蟲如何爬有效的信息。
ps. 這個博客已經很久沒有更新了。現在時間越來越少,平時鮮有時間來更新博客了。
最近某人發現,python其實是一種很適合寫爬蟲的語言,而且python越用越順手。現在若是有人問我「c++和c#學哪一個?「之類的問題的時候,我一定會說,學python吧,因為生命短暫,你應該學習python。
所謂爬蟲,就是把網頁的html下載下來,然後從裏面提取出來有用的信息,這些有用的信息一般就是正文,圖片,鏈接一類的信息。
針對特定網站的爬蟲就更好寫了,用正則表達式,把網頁里的鏈接信息找到,然後找到需要的信息,保存在本地,然後進入下一個鏈接重複上一次的過程。
下面的腳本演示如何從加菲貓的官網上把從1978年至今的所有漫畫全部下載下來
import os,urllib,urllib2,re
hosts = “http://**********”
#initpos = “/mobile/garfield/1978/06/19”
initpos =”/mobile/garfield/1979/08/08″
pname = re.compile(”’span class=”authorText”.+?em(.*?)/em/span”’)
pcomic = re.compile(”’div id=”comic”.+?src=”(.*?)”.+?/div”’)
pnext = re.compile(”’a href=”(.*?)” class=”next””’)
def getpage(url):
print url
req = urllib2.Request(url)
req.add_header(“User-Agent”,”Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:21.0) Gecko/20100101 Firefox/21.0″)
req.add_header(“If-None-Match”,”c1858c2845ca9501136ca83d624f8d4d”)
u = urllib2.urlopen(req).read()
return u
def getnextpos(content,patten):
r = patten.findall(content)
for x in r:
print ‘find next: ‘,x
return x
def savecomic(content,patten):
r = patten.findall(content)
print ‘find commic:’,r
r2 = pname.findall(content)
print ‘find name:’,r2
urlcomic = r[0]
u = urllib.urlopen(urlcomic).read()
name = r2[0].replace(‘ ‘,”).split(‘,’)
year = name[-1]
day = name[-2]
filename = ‘test.jpg’
if not os.path.exists(year):
os.makedirs(year)
# is gif file ,the name the file as gif
if ((u[0] is ‘G’) and (u[1] is ‘I’) and (u[2] is ‘F’)):
filename = year+day+’.gif’
else:
filename = year+day+’.jpg’
f = file(year+”/”+filename,”wb+”)
f.write(u)
f.close()
def main():
url = hosts+initpos
while(True):
c = getpage(url)
savecomic(c,pcomic)
u = getnextpos(c,pnext)
if u is None:
break
else:
url = hosts+u
if __name__ == ‘__main__’:
main()
初學者如何學習python?如何快速從Python小白到初級Python工程師?
制定目標
我的學習歷程:我想免費學習Python,因此我必須養成每天的學習習慣(每天4個小時),甚至要利用我的周末。我的總體規劃是設定目標並追逐目標。我為7個星期設定了7個目標!
第1周
我的第一周目標-(Python基礎知識)作為初學者,我們的第一周目標應該是-熟悉Python基礎知識,例如變量,條件,列表,循環,函數。(好奇並探索您可以使用Python進行的操作)。由於我想免費學習python,所以我開始在互聯網上進行挖掘,幸運的是發現了一個Python備忘單,對我有很大幫助。
第2周
第二周目標-(提高我的編碼能力)解決100多個編碼問題。反向字符串,迴文,GCD,合併排序數組,If-then-else語句,循環,函數和python軟件包問題。「越努力,您就會成為更好的開發者」
第3周
第三周目標-(了解數據結構和算法),提升您的技能和知識,並學習基礎知識,例如堆棧,隊列,元組,樹,字典,鏈接列表,搜索(線性和二進制搜索),遞歸函數(階乘,斐波那契數列),排序(氣泡排序,選擇排序)和時間複雜度(線性,二次和常數)。
第4周
第四(探索Python庫)Python之所以在開發人員中如此受歡迎,是因為其令人讚歎的庫可供用戶使用。您可以使用的一些最常見的庫是Numpy,Scipy,Scikit-learn,Theano,TensorFlow,Keras,PyTorch和Pandas。
OpenCV是計算機視覺庫,可為您提供圖像處理功能!很酷吧?
SimpleCV,另一個CV庫,本質上是OpenCV的子集,但學習曲線要低得多。
我發現個驚人的博客約有56個Python庫。
PyGame,一個遊戲開發庫,可讓您製作出色的遊戲。
第5周
第五周目標-(學習Python框架)您必須學習至少3個流行的框架。閱讀框架文檔,在B站上找到視頻教程。必須以Numpy,Django,pandas和Scrapy開頭。
Django-一個Web應用程序框架。從這裡您可以學習Django。
Flask(Python Microframework),另一種流行的Web應用程序框架,更加紮實(因此更加靈活)的Web應用程序開發方法
第6周
第六周目標-(從事Python項目)這是最重要的。在這裡,您必須測試並應用您的知識。在第6周,您要做的就是至少處理3個python項目。我知乎分享了我以前的答案,您將在這裡獲得一些適合初學者和中級學習者的出色python項目:使用Python構建的一些出色項目?
第7周
第七周目標-(Python面試練習)恭喜!現在,您擁有在全球任何一家技術公司中申請任何軟件工程工作所需的資源。現在,練習您的軟技能,並儘可能練習面試問題。
有哪些python+flask的搭建的博客或論壇開源推薦
如果你是剛開始學習的話想找一些開源的系統,以下是一些推薦。
以下較為簡單的項目
1、GitHub – koon-kai/kiblog: It ‘s a blog power by flask.
2、GitHub – proudlygeek/proudlygeek-blog: A simple blog powered by flask
3、GitHub – kkris/refer: a simple blog powered by flask and mongodb
4、GitHub – carpedm20/personal-blog-powered-by-flask: website powered by flask
5、GitHub – rfyiamcool/markdown-blog: 使用python的flask框架結合markdown寫了一個博客程序
6、zhangdapeng89/flask_blog
如果你覺得以上較為簡單,你可以接着看
1、GitHub – xpleaf/Blog_mini: An Open Source Blog System that developed with Flask.
2、GitHub – huangyemin/pyblog: a blog developed with python
3、deepgully (gully) · GitHub
4、wtx358/wtxlog
5、GitHub – ghostrong/weblog: A simple blog system written in Flask.
6、GitHub – sixu05202004/flaskblog: person blog powered by flask
AND
Powered By Flask
原創文章,作者:KM2BX,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/130020.html