一、 前言
随着计算机技术的快速发展,数据量变得越来越大,而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能够很快地爬取我们需要的数据。
五、 写在最后
作为一名新手,写的文章不好,希望大家能够多多批评指正,我将不胜感激。希望大家多多支持我哦,我会努力提高自己的编程能力,给大家奉上更加优质的内容。谢谢大家!
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试