Python爬虫入门教程 2-100 妹子图网站爬取


妹子图网站---- 前言

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

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

妹子图网站---- 网络请求模块requests

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

妹子图网站---- 安装requests

打开终端:使用命令

pip3 install requests

等待安装完毕即可使用

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

  1. # mkdir demo  

  2. # cd demo

  3. # touch down.py

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

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

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

对于centos则如下:

  1. sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc

  2. 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命令安装

  1. yum check-update

  2. sudo yum install code

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

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

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

之后,在VSCODE里面输入

  1. import requests   #导入模块


  2. def run():        #声明一个run方法

  3.    print("跑码文件")    #打印内容


  4. if __name__ == "__main__":   #主程序入口

  5.    run()    #调用上面的run方法

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

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

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

python3 down.py

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

  1. [root@bogon demo]# python3 down.py

  2. 跑码文件

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

修改上述代码中的

  1. import requests


  2. def run():

  3.    response = requests.get("http://www.baidu.com")

  4.    print(response.text)


  5. if __name__ == "__main__":

  6.    run()

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

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

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

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

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

  1. import requests


  2. def run():

  3.    response = requests.get("http://www.newsimg.cn/big201710leaderreports/xibdj20171030.jpg")

  4.    with open("xijinping.jpg","wb") as f :

  5.        f.write(response.content)  

  6.        f.close


  7. if __name__ == "__main__":

  8.    run()

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

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

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

修改代码

  1. import requests


  2. def run():

  3.    # 头文件,header是字典类型

  4.    headers = {

  5. 2019年养老金会迎来15连涨吗?

  6. 大数据告诉你,哪些人在海外置业
  7. 〓今日影讯〓阳光暖暖的星期天,我们一起看电影吧?!
  8. 越是懂车的人,就越不会买车 资深的汽车达人就被这个折磨疯了!
  9. 像安迪一样,做一只自由的鸟儿冲出牢笼,挣脱灵魂的束缚
  10. 穷小子买新车回村,故意堵在路中间炫耀,结果...
  11. 看不见的根,老家
  12. 小S直言黄渤很爱林志玲 林志玲喜欢和黄渤相处 是爱慕还是欣赏?
  13. 89平做了三房二厅,15万装修全部花在点上了,给大家晒晒新房
  14. 《道德经》:做人,只管善良。按照经典行事不会错的…