跟我学习Python爬虫系列开始啦。带你简单快速高效学习Python爬虫。
一、快速体验一个简单爬虫
以抓取简书首页文章标题和链接为例
就是以上红色框内文章的标签,和这个标题对应的url链接。当然首页还包括其他数据,如文章作者,文章评论数,点赞数。这些在一起,称为结构化数据。我们先从简单的做起,先体验一下Python之简单,之快捷。
1)环境准备
当然前提是你在机器上装好了Python环境,初步掌握和了解Python语法。如果还没有装好Python环境,对Python语言法不了解,可以先看《然学科技 Python基础系列》文章:https://www.jianshu.com/nb/20496406
2)安装相应包
快速入门我们使用的是requests
包和BeautifulSoup
包。简单解释一下,requests
功能强大,代码少,封装了网络请求request(发起请求)和response(网络响应),request就像打开浏览器地址栏输入你想要访问的网站,浏览器中马上就可以看到内容一样(response)。
爬虫可以抓到大量数据(结构化的数据),存到数据库中(或excel, csv文件),再进行清洗整理,进行其他工作,如数据分析等。数据抓取也是数据分析前提和基础。
- 安装
requests
pip install requests
- 安装
beautifulsoup4
pip install beautifulsoup4
- 可以查看一下你安装了哪些包
pip list
3)代码:
# _*_ coding:utf-8 _*_
import requests
from bs4 import BeautifulSoup
URL='http://www.jianshu.com'
def simple_crawel():
html = requests.get(URL).content
soup = BeautifulSoup(html, 'lxml')
titles = soup.find_all('a',class_="title")
for t in titles:
print t.text+' -->>> '+'https://www.jianshu.com'+t['href']
if __name__ == '__main__':
simple_crawel()
运行这个文件:
python demo.py
结果:
代码解析:
html = requests.get(URL).content
发起一个请求,获到到页面的内容(文本),对的就是一行代码就抓取到网页的全部内容。下一步就是要对页面进行解析。
titles = soup.find_all('a',class_="title")
这行代码表示,寻找页面上所有class
属性为title
的a
标签,就是文章标题所对应的标签。怎样才能找到文章标题对就是的哪个标题呢?很简单,在chrome浏览器中右键“检查”中查看就知道。看下图:
然后再循环遍历,就得到每一个文章标题的a
标签对象,在循环中取出文章标题的内容'text'和链接href
就行了。
就这么简单,10行代码就抓取到首页热门文章的标题和URL打印在屏幕上。
二、学习爬虫需要的相关知识
代码很少,涉及到的知识点却很多。如果想要入门系统学习Python爬虫需要哪些知识呢?
- Python语言基础
- Python爬虫相关库
- HTTP请求响应模式
- HTML基础(HTML+CSS)
- 数据库基础
以上内容,都会在《跟我学Python爬虫》逐步讲。也可以把Python爬虫作为Python语言学习的起点,来了解和学习这门“人工智能的第一语言”,进而打开爬虫、数据分析、数据可视化、深度学习、人工智能的大门。