今天分享一则python比较基础的技术,爬虫。教小白们怎么轻松利用爬虫技术获取自己想要的知识内容。
本节学习目标:
- 学习Python爬虫
- 爬取新闻网站新闻列表
- 爬取图片
- 把爬取到的数据存在本地文件夹或者数据库
- 学会用pycharm的pip安装Python需要用到的扩展包
一、首先了解Python是如何简单的爬取网页的
1、准备工作
项目用的BeautifulSoup4和chardet模块属于三方扩展包,如果没有请自行pip安装,我是用pycharm来做的安装,下面简单讲下用pycharm安装chardet和BeautifulSoup4
1.1.1、在pycharm的设置里按照下图的步骤操作
1.1.2、如下图搜索你要的扩展类库,如我们这里需要安装chardet直接搜索就行,然后点击install package, BeautifulSoup4做一样的操作就行
1.1.3、安装成功后就会出现在在安装列表中,到此就说明我们安装网络爬虫扩展库成功
二、由浅入深,我们先抓取网页
1、我们这里以抓取简书首页为例:http://www.jianshu.com/
# 简单的网络爬虫
from urllib import request
import chardet
response = request.urlopen("http://www.jianshu.com/")
html = response.read()
charset = chardet.detect(html)# {'language': '', 'encoding': 'utf-8', 'confidence': 0.99}
html = html.decode(str(charset["encoding"])) # 解码
print(html)
2、由于抓取的html文档比较长,这里简单贴出来一部分给大家看下
..........后面省略一大堆
这就是Python3的爬虫简单入门,是不是很简单,建议大家多敲几遍
三、Python3爬取网页里的图片并把图片保存到本地文件夹
1、目标
- 爬取百度贴吧里的图片
- 把图片保存到本地,都是妹子图片奥
- 不多说,直接上代码,代码里的注释很详细。大家仔细阅读注释就可以理解了
import re
import urllib.request
#爬取网页html
def getHtml(url):
page = urllib.request.urlopen(url)
html = page.read()
return html
html = getHtml("http://tieba.baidu.com/p/3205263090")
html = html.decode('UTF-8')
#获取图片链接的方法
def getImg(html):
# 利用正则表达式匹配网页里的图片地址
reg = r'src="([.*S]*.jpg)" pic_ext="jpeg"'
imgre=re.compile(reg)
imglist=re.findall(imgre,html)
return imglist
imgList=getImg(html)
imgCount=0
#for把获取到的图片都下载到本地pic文件夹里,保存之前先在本地建一个pic文件夹
for imgPath in imgList:
f=open("../pic/"+str(imgCount)+".jpg