python入门011~python3爬虫 爬取图片,爬取新闻网站文章并保存到数据库

本文介绍了如何使用Python进行基础网络爬虫,包括安装BeautifulSoup4和chardet扩展包,爬取网页、解析HTML抓取图片和新闻列表,并将数据存储在本地或数据库。作者还分享了爬取百度贴吧图片和简书新闻的示例代码。
摘要由CSDN通过智能技术生成
  • 2,爬取新闻网站新闻列表

  • 3,爬取图片

  • 4,把爬取到的数据存在本地文件夹或者数据库

  • 5,学会用pycharm的pip安装Python需要用到的扩展包

一,首先看看Python是如何简单的爬取网页的


1,准备工作

项目用的BeautifulSoup4和chardet模块属于三方扩展包,如果没有请自行pip安装,我是用pycharm来做的安装,下面简单讲下用pycharm安装chardet和BeautifulSoup4

  • 在pycharm的设置里按照下图的步骤操作

    在这里插入图片描述

  • 如下图搜索你要的扩展类库,如我们这里需要安装chardet直接搜索就行,然后点击install package, BeautifulSoup4做一样的操作就行

在这里插入图片描述

  • 安装成功后就会出现在在安装列表中,到此就说明我们安装网络爬虫扩展库成功

在这里插入图片描述

二,由浅入深,我们先抓取网页


我们这里以抓取简书首页为例: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)





由于抓取的html文档比较长,这里简单贴出来一部分给大家看下


<!DOCTYPE html>

<!--[if IE 6]><html class="ie lt-ie8"><![endif]-->

<!--[if IE 7]><html class="ie lt-ie8"><![endif]-->

<!--[if IE 8]><html class="ie ie8"><![endif]-->

<!--[if IE 9]><html class="ie ie9"><![endif]-->

<!--[if !IE]><!--> <html> <!--<![endif]-->



<head>

  <meta charset="utf-8">

  <meta http-equiv="X-UA-Compatible" content="IE=Edge">

  <meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=no">



  <!-- Start of Baidu Transcode -->

  <meta http-equiv="Cache-Control" content="no-siteapp" />

  <meta http-equiv="Cache-Control" content="no-transform" />

  <meta name="applicable-device" content="pc,mobile">

  <meta name="MobileOptimized" content="width"/>

  <meta name="HandheldFriendly" content="true"/>

  <meta name="mobile-agent" content="format=html5;url=http://localhost/">

  <!-- End of Baidu Transcode -->



    <meta name="description"  content="简书是一个优质的创作社区,在这里,你可以任性地创作,一篇短文、一张照片、一首诗、一幅画……我们相信,每个人都是生活中的艺术家,有着无穷的创造力。">

    <meta name="keywords"  content="简书,简书官网,图文编辑软件,简书下载,图文创作,创作软件,原创社区,小说,散文,写作,阅读">

..........后面省略一大堆



这就是Python3的爬虫简单入门,是不是很简单,建议大家多敲几遍

三,Python3爬取网页里的图片并把图片保存到本地文件夹


目标

  • 爬取百度贴吧里的图片

  • 把图片保存到本地,都是妹子图片奥

    不多说,直接上代码,代码里的注释很详细。大家仔细阅读注释就可以理解了


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",'wb')

    f.write((urllib.request.urlopen(imgPath)).read())

    f.close()

    imgCount+=1

print("全部抓取完成")





迫不及待的看下都爬取到了些什么美图

在这里插入图片描述

就这么轻易的爬取到了24个妹子的图片。是不是很简单。

四,Python3爬取新闻网站新闻列表


  • 这里我们只爬取新闻标题,新闻url,新闻图片链接。

  • 爬取到的数据目前只做展示,等我学完Python操作数据库以后会把爬取到的数据保存到数据库。

到这里稍微复杂点,就分布给大家讲解

  • 1 这里我们需要先爬取到html网页上面第一步有讲怎么抓取网页

  • 2分析我们要抓取的html标签

在这里插入图片描述

分析上图我们要抓取的信息再div中的a标签和img标签里,所以我们要想的就是怎么获取到这些信息

这里就要用到我们导入的BeautifulSoup4库了,这里的关键代码


# 使用剖析器为html.parser

soup = BeautifulSoup(html, 'html.parser')

# 获取到每一个class=hot-article-img的a节点

allList = soup.select('.hot-article-img')



上面代码获取到的allList就是我们要获取的新闻列表,抓取到的如下


[<div class="hot-article-img">

<a href="/article/211390.html" target="_blank">

![](https://img.huxiucdn.com/article/cover/201708/22/173535862821.jpg?imageView2/1/w/280/h/210/|imageMogr2/strip/interlace/1/quality/85/format/jpg)

</a>

</div>, <div class="hot-article-img">

<a href="/article/214982.html" target="_blank" title="TFBOYS成员各自飞,商业价值天花板已现?">

<!--视频和图片保留一个-->

![](https://img.huxiucdn.com/article/cover/201709/17/094856378420.jpg?imageView2/1/w/280/h/210/|imageMogr2/strip/interlace/1/quality/85/format/jpg)

</a>

</div>, <div class="hot-article-img">

<a href="/article/213703.html" target="_blank" title="买手店江湖">

<!--视频和图片保留一个-->

![](https://img.huxiucdn.com/article/cover/201709/17/122655034450.jpg?imageView2/1/w/280/h/210/|imageMogr2/strip/interlace/1/quality/85/format/jpg)

</a>

</div>, <div class="hot-article-img">

<a href="/article/214679.html" target="_blank" title="iPhone X正式告诉我们,手机和相机开始分道扬镳">

<!--视频和图片保留一个-->

![](https://img.huxiucdn.com/article/cover/201709/14/182151300292.jpg?imageView2/1/w/280/h/210/|imageMogr2/strip/interlace/1/quality/85/format/jpg)

</a>

</div>, <div class="hot-article-img">

<a href="/article/214962.html" target="_blank" title="信用已被透支殆尽,乐视汽车或成贾跃亭弃子">

<!--视频和图片保留一个-->

![](https://img.huxiucdn.com/article/cover/201709/16/210518696352.jpg?imageView2/1/w/280/h/210/|imageMogr2/strip/interlace/1/quality/85/format/jpg)

</a>

</div>, <div class="hot-article-img">

<a href="/article/214867.html" target="_blank" title="别小看“搞笑诺贝尔奖”,要向好奇心致敬">

<!--视频和图片保留一个-->

![](https://img.huxiucdn.com/article/cover/201709/15/180620783020.jpg?imageView2/1/w/280/h/210/|imageMogr2/strip/interlace/1/quality/85/format/jpg)

</a>

</div>, <div class="hot-article-img">

<a href="/article/214954.html" target="_blank" title="10 年前改变世界的,可不止有 iPhone | 发车">

<!--视频和图片保留一个-->

![](https://img.huxiucdn.com/article/cover/201709/16/162049096015.jpg?imageView2/1/w/280/h/210/|imageMogr2/strip/interlace/1/quality/85/format/jpg)

</a>

</div>, <div class="hot-article-img">

<a href="/article/214908.html" target="_blank" title="感谢微博替我做主">

<!--视频和图片保留一个-->

![](https://img.huxiucdn.com/article/cover/201709/16/010410913192.jpg?imageView2/1/w/280/h/210/|imageMogr2/strip/interlace/1/quality/85/format/jpg)

</a>

</div>, <div class="hot-article-img">

<a href="/article/215001.html" target="_blank" title="苹果确认取消打赏抽成,但还有多少内容让你觉得值得掏腰包?">

<!--视频和图片保留一个-->

![](https://img.huxiucdn.com/article/cover/201709/17/154147105217.jpg?imageView2/1/w/280/h/210/|imageMogr2/strip/interlace/1/quality/85/format/jpg)

</a>

</div>, <div class="hot-article-img">

<a href="/article/214969.html" target="_blank" title="中国音乐的“全面付费”时代即将到来?">

<!--视频和图片保留一个-->

![](https://img.huxiucdn.com/article/cover/201709/17/101218317953.jpg?imageView2/1/w/280/h/210/|imageMogr2/strip/interlace/1/quality/85/format/jpg)

</a>

</div>, <div class="hot-article-img">

<a href="/article/214964.html" target="_blank" title="百丽退市启示录:“一代鞋王”如何与新生代消费者渐行渐远">

<!--视频和图片保留一个-->

![](https://img.huxiucdn.com/article/cover/201709/16/213400162818.jpg?imageView2/1/w/280/h/210/|imageMogr2/strip/interlace/1/quality/85/format/jpg)

</a>

</div>]



这里数据是抓取到了,但是太乱了,并且还有很多不是我们想要的,下面就通过遍历来提炼出我们的有效信息

  • 3 提取有效信息

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值