设为首页 加入收藏

TOP

Python爬虫入门教程 2-100 妹子图网站爬取(一)
2018-12-13 16:14:05 】 浏览:132
Tags:Python 爬虫 入门教程 2-100 妹子 网站

前言

从今天开始就要撸起袖子,直接写Python爬虫了,学习语言最好的办法就是有目的的进行,所以,接下来我将用10+篇的博客,写爬图片这一件事情。希望可以做好。

为了写好爬虫,我们需要准备一个火狐浏览器,还需要准备抓包工具,抓包工具,我使用的是CentOS自带的tcpdump,加上wireshark ,这两款软件的安装和使用,建议你还是学习一下,后面我们应该会用到。

网络请求模块requests

Python中的大量开源的模块使得编码变的特别简单,我们写爬虫第一个要了解的模块就是requests。

安装requests

打开终端:使用命令

pip3 install requests

等待安装完毕即可使用

接下来在终端中键入如下命令

# mkdir demo  
# cd demo
# touch down.py

上面的linux命令是 创建一个名称为demo的文件夹,之后创建一个down.py文件,你也可以使用GUI工具,像操作windows一样,右键创建各种文件。

为了提高在linux上的开发效率,我们需要安装一个visual studio code 的开发工具

对于怎么安装vscode,参考官方的https://code.visualstudio.com/docs/setup/linux 有详细的说明。

对于centos则如下:

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'

然后用yum命令安装

yum check-update
sudo yum install code

安装成功之后,在你的CentOS中会出现如下画面

这里写图片描述

接着说我们上面的操作 ,因为我们这边是用gnome图形界面,所以后面的有些操作,我直接用windows的操作风格讲解了

打开软件>文件>打开文件>找到我们刚刚创建的down.py文件

之后,在VSCODE里面输入


import requests   #导入模块

def run():        #声明一个run方法
    print("跑码文件")    #打印内容

if __name__ == "__main__":   #主程序入口
    run()    #调用上面的run方法
        

tips:本教程不是Python3的基础入门课,所以有些编码基础,默认你懂,比如Python没有分号结尾,需要对齐格式。我会尽量把注释写的完整

按键盘上的ctrl+s保存文件,如果提示权限不足,那么按照提示输入密码即可

通过终端进入demo目录,然后输入

python3 down.py

显示如下结果,代表编译没有问题

[root@bogon demo]# python3 down.py
跑码文件

接下来,我们开始测试requests模块是否可以使用

修改上述代码中的


import requests

def run():
    response = requests.get("http://www.baidu.com")
    print(response.text)

if __name__ == "__main__":
    run()
        

运行结果(出现下图代表你运行成功了):

这里写图片描述

接下来,我们实际下载一张图片试试,比如下面这张图片

这里写图片描述

修改代码,在这之前,我们修改一些内容

由于每次修改文件,都提示必须管理员权限,所以你可以使用linux命令修改权限。

[root@bogon linuxboy]# chmod -R 777 demo/


import requests

def run():
    response = requests.get("http://www.newsimg.cn/big201710leaderreports/xibdj20171030.jpg") 
    with open("xijinping.jpg","wb") as f :
        f.write(response.content)   
        f.close

if __name__ == "__main__":
    run()

运行代码之后,发现在文件夹内部生成了一个文件

这里写图片描述

但是打开文件之后发现,这个文件并不能查阅,这代表这个文件压根没有下载下来

这里写图片描述

我们继续修改代码,因为有的服务器图片,都做了一些限制,我们可以用浏览器打开,但是使用Python代码并不能完整的下载下来。

修改代码


import requests

def run():
    # 头文件,header是字典类型
    headers = {
        "Host":"www.newsimg.cn",
        "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.5383.400 QQBrowser/10.0.1313.400"
    }
    response = requests.get("http://www.newsimg.cn/big201710leaderreports/xibdj20171030.jpg",headers=headers) 
    with open("xijinping.jpg","wb") as f :
        f.write(response.content)   
        f.close

if __name__ == "__main__":
    run()
        

好了,这次在终端编译一下python文件

python3 down.py

发现图片下载下来了

这里写图片描述

我们重点查看上述代码中 requests.get部分,添加了一个headers的实参。这样我们程序就下载下来了完整的图片。

Python爬虫页面分析

有了上面这个简单的案例,我们接下来的操作就变的简单多了。爬虫是如何进行的呢?

输入域名->下载源代码->分析图片路径->下载图片

上面就是他的步骤

输入域名

我们今天要爬的网站叫做 http://www.meizitu.com/a/pure.html

为啥爬取这个网站,因为好爬。

好了,接下来分析这个页面

这里写图片描述

做爬虫很重要的一点,就是你要找到分页的地方,因为有分页代表着有规律,有规律,我们就好爬了(可以做的更智能一些,输入首页网址,爬虫自己就能分析到这个网站中的所有地址)

上面图片中,我们发现了分页,那么找规律吧

这里写图片描述

使用火

首页 上一页 1 2 3 4 5 下一页 尾页 1/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python学习笔记 6 下一篇python识别批量网站中的图片

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目