首页 > 编程语言 > 详细

python爬虫系列:知己知彼

时间:2017-03-05 21:17:02      阅读:467      评论:0      收藏:0      [点我收藏+]

总的来说,爬虫是比较有趣的。

始于看到这篇分析从数据角度解析福州美食,止于完成从数据角度解析刘禹锡诗里都写了什么的分析。

然后就有接下来的总结,python爬虫系列

 

爬虫简介

  互联网包含了迄今为止最多的数据集,我想这句话没有问题。它们以嵌入的方式呈现在网站的结构和样式当中,供我们公开访问大部分时候。但是这些数据又难以复用,所以必须得抽取出来使用,从网页中抽取数据的过程便称为网络爬虫。

 

爬虫调研

  首先,我们得认识到爬取一个网站的数据时,自己是一个访客,应当约束自己的抓取行为,限速和数据商用等。其次,在深入爬取之前,我们需要对目标网站的规模和结构进行一定了解。

1)检查robot.txt

这个文件定义了爬取网站存在的限制,良好的网络公民都应该遵守这些限制,这也是避免爬虫被封禁的有效途径之一

    技术分享
 1 #section1
 2 User-agent: *
 3 Disallow: /subject_search
 4 Disallow: /amazon_search
 5 Disallow: /search
 6 Disallow: /group/search
 7 Disallow: /event/search
 8 Disallow: /celebrities/search
 9 Disallow: /location/drama/search
10 Disallow: /forum/
11 Disallow: /new_subject
12 Disallow: /service/iframe
13 Disallow: /j/
14 Disallow: /link2/
15 Disallow: /recommend/
16 Disallow: /trailer/
17 Disallow: /doubanapp/card
18 Sitemap: https://www.douban.com/sitemap_index.xml
19 Sitemap: https://www.douban.com/sitemap_updated_index.xml
20 # Crawl-delay: 5
21 
22 #section2
23 User-agent: Wandoujia Spider
24 Disallow: /
View Code

以上是豆瓣网站的robot.txt文件的内容,section1规定,不论哪种用户代理,两次下载请求之间应延迟5秒抓取,避免服务器过载;还列出了一些不允许爬取的链接,以及定义了sitemap文件。section2规定,禁止用户代理为Wandoujia的爬虫爬取该网站

2)检查网站地图  

网站提供的Sitemap文件,即网站地图,可以帮助爬虫定位网站最新的内容,避免爬取每一个网页。该文件比较大,都采取的是压缩方式展示,所以还需要解压缩,才能看到比较详细的内容

3)识别网站所用技

构建网站的技术会影响如何爬取,python的builtwith库可以帮助了解这一点。

1 >>> import builtwith
2 >>> builtwith.parse("https://www.douban.com")
3 {ujavascript-frameworks: [ujQuery], utag-managers: [uGoogle Tag Manager], uanalytics: [uPiwik]}

4)估算网站大小

目标网站的大小会影响我们爬取的方式,比较小的网站,效率就没有那么重要,而上百千万级别的网页站点,则需要考虑分布式下载方式,不然串行下载,可能需要持续好久才能完成。

 

爬虫准备

清楚爬取的目的。爬取的过程大致分为:

1)爬取:下载网页(requests,urllib,urllib2),解析网页(re,lxml,BeautifulSoup,选其一)

2)存储:MongoDB

3)分析:暂略(忏愧做的数据分析都十分浅)

4)展示:Echarts

 

爬虫需要熟悉或安装的第三方库

1)请求和响应:requests,urllib,urllib2

  注:在python2.7语法里,urllib和urllib2是两个不同的内置模块,python3合二为一了。两者的区别在于urllib2可接收一个Request对象,并以此可以设置一个headers,但urllib只能接收url;urllib可提供进行urlencode方法,urllib2不具有

2)提取数据:re,lxml,BeauitifulSoup

3)数据格式:json,xml

4)数据库连接:pymongo

5)爬虫框架:Scrapy

 

爬虫工具准备

1)python2.7:自带IDEL编辑器,使用pip包管理工具,安装第三方库。

常见命令有:pip list    #查看所有已安装的

      pip install 第三方库名  #安装

      pip uninstall 第三方库名  #卸载

      pip install --upgrade 第三方库名  #升级

技术分享

 2)Anaconda2:可以看做时Python的一个集成安装,安装它后就默认安装了python、IPython、集成开发环境Spyder和众多的包和模块。非常方便,注意是非常方便。使用conda包管理工具,安装第三方库。常用命令和pip差不多

技术分享

注:人生苦短,使用Anaconda。自带numpy,pandas,matplotlib第三方库,用来数据分析,不用考虑各个库之间的依赖关系非常赞。

python爬虫系列:知己知彼

原文:http://www.cnblogs.com/Ryana/p/6147766.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!