本文目录一览:
用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