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

本文介绍了Python爬虫的基本结构,包括请求、解析和存储三个核心模块。通过实例展示了如何使用requests库获取网页内容,以及利用BeautifulSoup解析网页提取数据,包括安装这两个库的步骤和爬取网页数据的代码示例。
摘要由CSDN通过智能技术生成

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


爬虫是什么呢?正常方式通过浏览器可以获取的数据,爬虫都可以获取。也就是说,爬虫是一个获取正常浏览器可以获取的数据的自动化获取程序。
所以我们要做的就是找到我们需要的网页,然后一个一个地处理~


怎么进入一个页面呢?有两种方式:
(1)已知地址
(2)从前面爬取到的网页中获取入口


爬虫的实例:
回想我们打开浏览器的时候会做什么?你先把一个地址复制到浏览器的地址栏,或者点开一个连接,左下方的进度条一直在跳转直到进入页面,然后看到网页页面一系列的信息。
进度条的跳转过程其实就是完成对网页的一次请求,然后浏览器把请求下来的数据处理输出到页面。但是,爬虫和浏览器有什么嘛区别呢?
爬虫只需要解析网页,不需要渲染浏览器环境,另外,我们需要特定网页的特定数据,所以要用一定的方式把数据组织并存储起来。
总的来说,爬虫的核心模块有三个:请求、解析、存储。


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

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

先讲讲如何安装这两个库

****requests库

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

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

输入python setup.py install

3)检验是否安装成功

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



**********安装BeautifulSoup库

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()方法把标签里面的文字提取出来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值