吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3149|回复: 13
收起左侧

[Python 转载] Python爬取表情包

[复制链接]
zyc183369 发表于 2020-6-5 16:52
可早就会Python基础了

但是没有实战过  百度搜表情包  看到一个网站

就突发奇想  papa试试

[url=]00v0.jpg[/url]  

于是就有了以下代码  好多知识点用的时候不知道用哪个了  

第一次使用Python爬取互联网上的东西

好歹算把图爬下来了  挺基础的适合新手练手
[url=]0dj4.jpg[/url]
[Python] 纯文本查看 复制代码
import urllib
import requests
import re

def picdown(m):
url = 'https://www.fabiaoqing.com/biaoqing/lists/page/%d.html'%m #通过形参可以自定义页数
r = requests.get(url) #获取url页面
# print(r.text) #自己看
r1 = r.text # 爬取界面数导入r1
r2 = re.findall('<div.*?<a.*?<img.*?data-original="(.*?)".*?</a>', r1, re.S)

#正则过滤图片链接
#re.S整体匹配,不限于一行匹配
#匹配[img]http://wx2.sinaimg.cn/bmiddle/006APoFYly1geq2ghyb7nj30gs0gs3yx.jpg[/img]


for i in range(0, len(r2)):
print(i, r2[i]) #打印整个列表(链接)
cc = r2[i]
c1 = cc[-8:]

#取字符后几位(因为两种格式gif和jpg)待会命名用
#print(c1)
# 将远程图片下载到本地,第二个参数(c1)就是要保存到本地的文件名

urllib.request.urlretrieve(cc, 'D:/python/表情包/%s'%c1)
print("第%d张图片下载成功" %i)

#给自己个提示
#这个还想加个爬取时间间隔 但是我不会

for i in range(1,2):

#2可以替换 最高不超过200页
picdown(i)
"""
通过这次爬取感觉到了
1.正则用的不好 
2.不会加爬取时间间隔 爬了500M 被主机中断了远程连接 不知所措 
3.反正就是感觉自己可菜 感觉写出来的代码丑 感觉还可以再优化
"""
00v0.jpg
0dj4.jpg

免费评分

参与人数 4吾爱币 +6 热心值 +4 收起 理由
hshcompass + 1 + 1 热心回复!
a5228172 + 1 + 1 谢谢@Thanks!
苏紫方璇 + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
王星星 + 1 + 1 热心回复!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| zyc183369 发表于 2020-6-6 16:02
本帖最后由 zyc183369 于 2020-6-6 17:24 编辑

[Python] 纯文本查看 复制代码
import urllib
import requests
import re


def picdown(m):
    headers = {
        'User - Agent': 'Mozilla / 5.0(Windows NT 6.1;WOW64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 78.0.3904.108 Safari / 537.36',
        'Cookie':'__gads=ID=7bcdde2f7833c989:T=1591256329:S=ALNI_Mb0rB43nTRvuClCMnFdwTnUyG7iAA; UM_distinctid=1727e44b69b27f-02086d895f4aff-4e4c0f20-1fa400-1727e44b69e33c; PHPSESSID=q4tiusrjbdk84sjjavo2db93qf; CNZZDATA1260546685=1753245676-1591253670-https%253A%252F%252Fwww.baidu.com%252F%7C1591432820'
    }
    url = 'https://www.fabiaoqing.com/biaoqing/lists/page/%d.html' % m  # 通过形参可以自定义页数
    r = requests.get(url,headers = headers)  # 获取url页面
    r1 = r.text  # 爬取界面数导入r1
    r2 = re.findall('<div.*?<a.*?<img.*?data-original="(.*?)".*?</a>', r1, re.S)

    for i in range(0, len(r2)):
        print(i, r2[i])
        cc = r2[i]
        c1 = cc[-8:]
        urllib.request.urlretrieve(cc, 'D:/python/表情包/%s' % c1)#这里自定义保存地址
        print("第%d页第%d张图片下载成功"%(m,i))

for i in range(80, 180):

    picdown(i)
头像被屏蔽
王星星 发表于 2020-6-5 17:08
cl19980429 发表于 2020-6-5 17:14

可以的

[Asm] 纯文本查看 复制代码
zdnyp 发表于 2020-6-5 17:44
代码缩进都不搞一下的么...
头像被屏蔽
RizeBo 发表于 2020-6-5 17:50
提示: 作者被禁止或删除 内容自动屏蔽
aristan 发表于 2020-6-5 18:03
学习了谢谢楼主
a5228172 发表于 2020-6-5 19:21
加个延迟  估计不会500
fanvalen 发表于 2020-6-5 21:46
恐怕是你没加headers导致被拒吧,延时用time模块中的sleep(5)
BBMonkey 发表于 2020-6-6 09:58
一直想学习下代码,有机会把这些都给整明白
fls 发表于 2020-6-6 10:08
鼓励~之前也写过一个从这个站爬表情的脚本,根据类型分类+多进程的
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 01:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表