您的位置:首页 > 编程语言 > Python开发

python爬虫入门1--爬虫基本结构

2017-05-20 19:25 399 查看
学了这么久的编程,大一大二学了很多基础课程,到大三开始学习一些比较专业的东西,上学期接触了数据挖掘,这学期学习人工智能,让我对大数据的挖掘有了很大的兴趣,前几天看了师兄的毕业答辩,觉得做数据挖掘的课题很有意思,所以准备动手爬爬虫,抓取大数据进行分析。于是搜了很多话题 ,最后在知乎找到了一个很好的学习资源,撸起袖子干!!!

爬虫是什么呢?正常方式通过浏览器可以获取的数据,爬虫都可以获取。也就是说,爬虫是一个获取正常浏览器可以获取的数据的自动化获取程序。

所以我们要做的就是找到我们需要的网页,然后一个一个地处理~

怎么进入一个页面呢?有两种方式:

(1)已知地址

(2)从前面爬取到的网页中获取入口

爬虫的实例:

回想我们打开浏览器的时候会做什么?你先把一个地址复制到浏览器的地址栏,或者点开一个连接,左下方的进度条一直在跳转直到进入页面,然后看到网页页面一系列的信息。

进度条的跳转过程其实就是完成对网页的一次请求,然后浏览器把请求下来的数据处理输出到页面。但是,爬虫和浏览器有什么嘛区别呢?

爬虫只需要解析网页,不需要渲染浏览器环境,另外,我们需要特定网页的特定数据,所以要用一定的方式把数据组织并存储起来。

总的来说,爬虫的核心模块有三个:请求、解析、存储。

一个例子:

爬取教学研究人员 这个网页的过程,实现的目的就是把这个网页上所有老师的姓名和个人主页的链接(可能是下一次爬虫的入口)提取出来~

在这个例子中,我们需要用到两个第三方库,requests和BeautifulSuop

先讲讲如何安装这两个库

****requests库

1)从https://github.com/kennethreitz/requests下载到python的安装路径,解压



2)点击request-master右键以命令行打开!

输入python setup.py install

3)检验是否安装成功

打开cmd命令行,输入python,输入import requests



**********安装Be
4000
autifulSoup库

python版本是3.0安装这个库有点麻烦,下载了之后很容易出现版本不兼容的错误,2.0版本的库在3.0上无法工作

在此推荐个小小秘籍,亲测成功

1)在http://download.csdn.net/detail/huhuang/9770322下载beautifulsoup4-4.5.3-py3-none-any.whl

2)进入python安装路径,运行pip命令,文件名写全路径

 pip install python安装路径\beautifulsoup4-4.5.3-py3-none-any.whl

3)检测是否安装成功(bs4是BeautifulSoup4的缩写)



开始爬取!!

步骤:


1.请求

我们使用的package是requests.这是一个第三方模块,对HTTP协议进行了高度封装。

(1)首先我们导入requests包

import requests

(2)调用requests的get函数,把网页请求下来

爬取教学研究人员

r=requests.get('http://gjs.jxau.edu.cn/2668/list.htm')

返回的r是一个包含了整个HTTP协议需要的各种各样的东西。

(3)html=r.content

这样便获取了网页的源代码

2.解析:可以在网页右键打开,利用审查元素来看;也可以在源代码里面找



下面使用bs4来解析,bs4是一个非常好的解析网页的库;

下面介绍几个BeautifulSoup对象的方法,主要是通过HTML的标签和标签里面的参数来定位,然后后用特定的方法来提取数据。

from bs4 import BeautifulSoup

//创建一个BeautifulSoup对象

soup=Beautiful(html,'html.parser')//html.parser是解析器

下面根据我们所看到的网页提取,首先定位到下面的div元素行

div_people_list=soup.find('div',attrs={'class':'paging_content'})

其中使用了find方法,这个方法的意思是找到带有div这个标签并且参数包含‘class=‘people_list’’的html代码,如果有多个,find方法会提取第一个。

a_s=div_people_list.find_all('a',attrs={'target':'_blank'})

for a in a_s:
url=a['href']
name=a.get_text()
print(name,url)

其中使用了类似python字典索引的方式把“a”标签里面“href”参数的值提取出来,赋值给url,用get_text()方法把标签里面的文字提取出来

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: