视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
爬虫为什么要用python
2020-11-27 14:07:49 责编:小采
文档


什么是网络爬虫?

网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的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爬虫

 1 import urllib
 2 import urllib.request
 3 
 4 def loadPage(url,filename):
 5 """
 6 作用:根据url发送请求,获取html数据;
 7 :param url:
 8 :return:
 9 """
10 request=urllib.request.Request(url)
11 html1= urllib.request.urlopen(request).read()
12 return html1.decode('utf-8')
13 
14 def writePage(html,filename):
15 """
16 作用将html写入本地
17 
18 :param html: 服务器相应的文件内容
19 :return:
20 """
21 with open(filename,'w') as f:
22 f.write(html)
23 print('-'*30)
24 def tiebaSpider(url,beginPage,endPage):
25 """
26 作用贴吧爬虫调度器,负责处理每一个页面url;
27 :param url:
28 :param beginPage:
29 :param endPage:
30 :return:
31 """
32 for page in range(beginPage,endPage+1):
33 pn=(page - 1)*50
34 fullurl=url+"&pn="+str(pn)
35 print(fullurl)
36 filename='第'+str(page)+'页.html'
37 html= loadPage(url,filename)
38 
39 writePage(html,filename)
40 
41 
42 
43 if __name__=="__main__":
44 kw=input('请输入你要需要爬取的贴吧名:')
45 beginPage=int(input('请输入起始页'))
46 endPage=int(input('请输入结束页'))
47 url='https://tieba.baidu.com/f?'
48 kw1={'kw':kw}
49 key = urllib.parse.urlencode(kw1)
50 fullurl=url+key
51 tiebaSpider(fullurl,beginPage,endPage)

下载本文
显示全文
专题