gpt4 book ai didi

一篇文章教会你利用Python网络爬虫成为斗图达人

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章一篇文章教会你利用Python网络爬虫成为斗图达人由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

##【1、项目背景】 。

你是否在寻找可以与高手斗图的应用? 你是否在寻找可以自制表情的应用?你是否在寻找最全、最爆笑的表情库?

斗图网是一个收集了成千上万的撕逼斗图表情包,在这里你可以快速找到想要的表情, 更好的“斗图”,助您成为真正的斗图终结者.

一篇文章教会你利用Python网络爬虫成为斗图达人

##【2、项目目标】 。

下载表情包,保存文档.

##【3、涉及的库和网站】 。

1、网址如下:

1
https://www.doutula.com/photo/list/?page={}

2、涉及的库:requests**、lxml、ssl****、time** 。

3、软件:PyCharm 。

##【4、项目分析】 。

1、如何找到表情包图片地址?

F12右键检查,找到对应的图片的地址.

一篇文章教会你利用Python网络爬虫成为斗图达人

观察网址的变化(一般取前三页):

1
2
3
https://www.doutula.com/photo/list/?page=1
https://www.doutula.com/photo/list/?page=2
https://www.doutula.com/photo/list/?page=3

发现点击下一页时,page{}每增加一页自增加1,用{}代替变换的变量,再用for循环遍历这网址,实现多个网址请求.

2. 如何解除ssl验证?

因为这个网址是https,需要导入一个ssl模块,忽略ssl验证.

一篇文章教会你利用Python网络爬虫成为斗图达人

**3. **如何获取Cookie?

右键检查,找到NetWork,随便复制一个Cookie即可.

一篇文章教会你利用Python网络爬虫成为斗图达人

##【5、项目实施】 。

1、我们定义一个class类继承object,然后定义init方法继承self,再定义一个主函数main继承self。导入需要的库.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import requests
from lxml import etree
from fake_useragent import UserAgent
import ssl  # ssl验证
import time
 
ssl._create_default_https_context = ssl._create_unverified_context
 
class  Emoticon(object):
     def __init__(self):
         pass
     def main(self):
         pass
 
if __name__ == '__main__':
     spider = Emoticon()
     spider.main()

2、导入网址和构造请求头,防止反爬.

1
2
3
def __init__(self):
        self.headers = {'User-Agent': 'Mozilla/5.0'}
        self.url = 'https://www.doutula.com/photo/list/?page={}'

3、发送请求 ,获取响应,页面回调,方便下次请求.

1
2
3
4
def get_page(self, url):
        res = requests.get(url=url, headers=self.headers)
        html = res.content.decode("utf-8")
        return html

4、xpath解析页面.

这里我们先获取父节点,在通过for循环遍历,找到对应的子节点(图片地址).

一篇文章教会你利用Python网络爬虫成为斗图达人

一篇文章教会你利用Python网络爬虫成为斗图达人

1
2
3
4
image = parse_html.xpath('//ul[@class="list-group"]/li/div/div//a')
for i in image:
     image_src_list = i.xpath('.//img/@data-original')[0]
     image_name = i.xpath('.//img//@alt')[0]

运行的结果:

一篇文章教会你利用Python网络爬虫成为斗图达人

5、对图片地址发生请求,取对应图片地址后10位,作为图片的命名,写入文件(每一张图片的后缀名不一样,所有这里不采用image_name作为图片的命名).

1
2
3
4
5
6
7
html2 = requests.get(url=image_src_list, headers=self.headers).content
  name = "/图/" + image_src_list[-20:]
  #print(name[-10:])
  with open(name[-10:], 'wb') as f:
      f.write(html2)
      print("%s 【下载成功!!!!】" % image_name)
      print("==================================")

6、调用方法,实现功能.

1
2
3
html = self.get_page(url)
self.parse_page(html)
         print("======================第%s页爬取成功!!!!=======================" % page)

7、time模块打出执行时间.

1
2
3
start = time.time()
  end = time.time()
  print('执行时间:%.2f' % (end - start))

【6、效果展示】 。

1、点击绿色小三角运行输入起始页,终止页.

一篇文章教会你利用Python网络爬虫成为斗图达人

2、将下载成功信息显示在控制台.

一篇文章教会你利用Python网络爬虫成为斗图达人

3、保存文档,在本地可以看到斗图.

一篇文章教会你利用Python网络爬虫成为斗图达人

##【7、总结】 。

1、不建议抓取太多数据,容易对服务器造成负载,浅尝辄止即可.

2、本文基于Python网络爬虫,利用爬虫库,获取表情包,存入文档.

3、希望通过这个项目能够了解到,对于HTTPS网站,解除ssl验证的有大致的了解.

4、可以尝试的去爬取其他的分类的表情包,按照步骤去实现,实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻.

原文地址:https://blog.csdn.net/pdcfighting/article/details/108800140 。

最后此篇关于一篇文章教会你利用Python网络爬虫成为斗图达人的文章就讲到这里了,如果你想了解更多关于一篇文章教会你利用Python网络爬虫成为斗图达人的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com