千图网爬取无水印(连视频都能爬下来哦)
在写完这篇帖子:https://www.52pojie.cn/forum.php?mod=viewthread&tid=991487&page=3#pid26914458最后我发现,我之前的表达式又能刷了,真是造化弄人{:1_906:} 于是我改进了,请大家忘记那个垃圾东西吧:sleepy: 也有点小思路
又改进了一下代码,不过这次连视频都可以爬下来哦
测试视频和源码都在链接里,想要使用必须有个F盘里面有个bing文件夹里面在有个千图网无损文件夹我的python环境是3.7的
由于还要学抓包,所以我就不把爬取多页的代码加上了,如何想加的话,可以结合之前的代码复制粘贴就可以了,又突然想到 了,如果在首页上加个正则过滤小模块网站,岂不是能拿下整个网站的全部元素,但是对他们服务器的资源消耗还是很大的 ,所以你们就用我给的那个吧,还是不要搞事情了
链接:https://pan.baidu.com/s/1ANK5kcy65siASGmb5fe-6g
提取码:rndo
复制这段内容后打开百度网盘手机App,操作更方便哦
import re
import urllib.request
url_baba = "https://www.58pic.com/newpic/32681878.html"
data = urllib.request.urlopen(url_baba).read().decode('gbk','ignore')
tj = 'content="//preview.(.*?)!w1024_water'
mp4_tj = 'data-src="//pic.qiantucdn.com/58pic/(.*?)"'
title_tj = '<span class="pic-title fl">(.*?)</span>'
p = re.compile(tj).findall(str(data))
tit = re.compile(title_tj).findall(str(data))
mp4_p = re.compile(mp4_tj).findall(str(data))
h_z = p[-4:]
for i in range(len(p)):
if mp4_p ==[]:
pass
else:
print("发现视频,开始下载")
mp4_hz = mp4_p[-4:]
url = "http://pic.qiantucdn.com/58pic/" + str(mp4_p)
file = "F:/bing/千图网无损/" + str(tit) + str(mp4_hz)
urllib.request.urlretrieve(url, filename=file)
print("下载成功:" + str(tit))
continue
url = "http://pic." + str(p)
file = "F:/bing/千图网无损/" + str(tit) +str(h_z)
urllib.request.urlretrieve(url,filename=file)
print("下载成功:" +str(tit))
我的运行出现以下提示,大神给分析一下是什么问题好吗,谢谢
=====
发现视频,开始下载
Traceback (most recent call last):
File "F:\bing\千图网无损 (2).py", line 21, in <module>
urllib.request.urlretrieve(url,filename=file)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\urllib\request.py", line 247, in urlretrieve
with contextlib.closing(urlopen(url, data)) as fp:
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\urllib\request.py", line 222, in urlopen
return opener.open(url, data, timeout)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\urllib\request.py", line 531, in open
response = meth(req, response)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\urllib\request.py", line 640, in http_response
response = self.parent.error(
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\urllib\request.py", line 569, in error
return self._call_chain(*args)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\urllib\request.py", line 502, in _call_chain
result = func(*args)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\urllib\request.py", line 649, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden
>>> 52pojie-wangqi 发表于 2019-7-17 16:16
下了3.7安装好了,就是一打开文件窗口闪退,应该还要下一个什么文件吗?
直接打开闪退也是正常的,首先先去你的f盘创建一个新的文件夹名字叫bing,然后再在里创建一个千图网无损的文件夹,接下来点击你的开始(就是你关机要点的那个东西)有个搜索框里面搜IDLE(python3.7)打开它,然后按Ctrl+n,有个新界面左上角点一下,然后有一个open然后选择我网盘里的.py程序,如果想要下载对应的页面,只需要修改url_baba,把你要下载的网址复制进去,在双引号里面在按f5执行 谢谢分享 你下面的代码在 你分享的网盘链接里有么有的话我就不复制下面的代码了 感谢分享! 感谢分享 正好学习Python学习了
这就是python爬虫 多谢楼主分享,要是能封装成一个应用就更方便了 谢谢楼主分享啊。 感谢分享,会技术不仅能赚钱还能省钱 我觉得吧可以做个易语言程序,直接输入网址就行了