选择Python写⽹络爬⾍的优势和理由
什么是⽹络爬⾍?
⽹络爬⾍是⼀个⾃动提取⽹页的程序,它为搜索引擎从万维⽹上下载⽹页,是搜索引擎的重要组成。传统爬⾍从⼀个或若⼲初始⽹页的URL开始,获得初始⽹页上的URL,在抓取⽹页的过程中,不断从当前页⾯上抽取新的URL放⼊队列,直到满⾜系统的⼀定停⽌条件
爬⾍有什么⽤?
做为通⽤搜索引擎⽹页收集器。(google,baidu)
做垂直搜索引擎.
科学研究:在线⼈类⾏为,在线社演化,⼈类动⼒学研究,计量社会学,复杂⽹络,数据挖掘,等领域的实证研究都需要⼤量数据,⽹络爬⾍是收集相关数据的利器。
偷窥,hacking,发垃圾邮件……
爬⾍是搜索引擎的第⼀步也是最容易的⼀步
• ⽹页搜集
• 建⽴索引
• 查询排序
⽤什么语⾔写爬⾍?
C,C++。⾼效率,快速,适合通⽤搜索引擎做全⽹爬取。缺点,开发慢,写起来⼜臭⼜长,例如:天⽹搜索源代码。
脚本语⾔:Perl, Python, Java, Ruby。简单,易学,良好的⽂本处理能⽅便⽹页内容的细致提取,但效率往往不⾼,适合对少量⽹站的聚焦爬取
C#?(貌似信息管理的⼈⽐较喜欢的语⾔)
为什么最终选择Python?
跨平台,对Linux和windows都有不错的⽀持。
科学计算,数值拟合:Numpy,Scipy
可视化:2d:Matplotlib(做图很漂亮), 3d: Mayavi2
复杂⽹络:Networkx
统计:与R语⾔接⼝:Rpy
交互式终端
⽹站的快速开发?
⼀个简单的Python爬⾍
import urllib
quest
def loadPage(url,filename):
"""
作⽤:根据url发送请求,获取html数据;
python网络爬虫书籍推荐:param url:
:return:
"""
quest.Request(url)
html1= quest.urlopen(request).read()
return html1.decode('utf-8')
def writePage(html,filename):
"""
作⽤将html写⼊本地
:param html: 服务器相应的⽂件内容
:return:
"""
with open(filename,'w') as f:
f.write(html)
print('-'*30)
def tiebaSpider(url,beginPage,endPage):
"""
作⽤贴吧爬⾍调度器,负责处理每⼀个页⾯url;
:param url:
:param beginPage:
:param endPage:
:return:
"""
for page in range(beginPage,endPage+1):
pn=(page - 1)*50
fullurl=url+"&pn="+str(pn)
print(fullurl)
filename='第'+str(page)+'页.html'
html= loadPage(url,filename)
writePage(html,filename)
if __name__=="__main__":
kw=input('请输⼊你要需要爬取的贴吧名:')
beginPage=int(input('请输⼊起始页'))
endPage=int(input('请输⼊结束页'))
url='tieba.baidu/f?'
kw1={'kw':kw}
key = urllib.parse.urlencode(kw1)
fullurl=url+key
tiebaSpider(fullurl,beginPage,endPage)
以上就是关于为什么Python写⽹络爬⾍的全部理由和知识点,感谢⼤家的阅读和对的⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论