Python爬虫——用Pycharm写一个爬虫程序,爬取糗图百科全部糗图,室友看了直呼牛逼

 一、 前言

        随着计算机技术的快速发展,数据量变得越来越大,而python作为数据分析强有力的工具,在数据分析方面很有优势,其强大的第三方库提供了很多强大的功能。我们只有先将数据爬取出来,才能进行数据分析。下面我就来介绍一下如何爬取糗图百科全部的糗图。

二、 源码

import requests
import re
import os
import time


def main():
    # 响应头信息,进行UA伪装
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
                      'AppleWebKit/537.36 (KHTML, like Gecko) '
                      'Chrome/96.0.4664.45 Safari/537.36'
    }
    param = {
        '2670efbdd59c7e3ed3749b458cafaa37': ''
    }
    # 空列表 存放解析出来的正则表达式(图片的url)
    response_url = []
    response_url_all = []
    # 正则表达式 获取所有图片的链接地址
    ex = '<div class="thumb">.*?<img src="(.*?)" alt'
    # 获取整个页面的网页信息,以便对网页信息进行分析和数据存储
    # 通过分析发现共有14页页面
    for k in range(1, 14):
        url = 'https://www.qiushibaike.com/imgrank/page/' + str(k) + '/'
        response_text = requests.get(url=url, params=param).text
        response_url = re.findall(ex, response_text, re.S)
        for items in response_url:
            items = 'https:' + items
            response_url_all.append(items)
            # 已经获取所有的图片的url,存放在一个列表 response_url_all 中
    # print(response_url_all)
    # 新建一个image文件夹,存放爬取到的图片的数据
    if not os.path.exists('image'):
        os.mkdir('image')
    
    for items_image in response_url_all:
        # 首先将爬取的字符串数据拼接成一个完整的网址,便于数据抓取
        image_name = items_image.split('/')[-1]
        # 获取二进制图片数据
        items_date = requests.get(url=items_image, headers=headers).content
        # 保存图片
        with open('image/' + image_name, 'wb') as fp:
            fp.write(items_date)
        print(image_name, '下载成功!!!')


if __name__ == '__main__':
    main()

三、 爬取步骤

        1. 我所使用的集成开发环境是Pycharm,首先新建一个.py文件,拥有编写代码:鼠标右键点击你的项目名称,然后new,python file ,输入自己的.py文件的名字,我的文件名字为Regular_expression_01,系统会自动加上.py 后缀。

    2. 编写代码,代码已经在上面,同行可自取。

    3. 在爬虫之前,我们需要对页面进行分析,进入糗图百科,点击热图,我们会发现这里面有我们所需要爬取的糗图。

    4. 接下来我们对网页进行分析,浏览器单击鼠标右键,点击“检查”,点击"network",再刷新页面

会出现下面的页面:

     5. 接下来我们对图片地址进行分析,我们翻到第二页,看网址,发现https://www.qiushibaike.com/imgrank/page/是不变的,而后面会加个 "页数/"

     6. 于是我们的url便可以使用如下语句写了:

 这便是我们所有的网址啦,接下来就是分析每一页网页上图片的数据了

按照顺序点击: 

       7. 点击Headers,进入头部信息,往下拉,找到User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36这一行,这便是浏览器发给服务器的头信息,爬虫的时候需要用到。

 

      8. 我们再进入Elements,对网站的信息进行分析,找到图片的路径,以便爬取网站信息:

      9. 我们发现,所有的图片都在class = "thumb"标签下面的img标签里,有了这个信息,就可以用正则表达式提取图片的链接了! 正则表达式见源码!

     10. 接下来就是写程序了!程序就在源码里了,需要自取哦。

四、 总结

         python爬虫是非常常见的数据抓取工具,用Python能够很快地爬取我们需要的数据。

五、 写在最后

        作为一名新手,写的文章不好,希望大家能够多多批评指正,我将不胜感激。希望大家多多支持我哦,我会努力提高自己的编程能力,给大家奉上更加优质的内容。谢谢大家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值