好友
阅读权限10
听众
最后登录1970-1-1
|
今天是学爬虫的第三天,爬图片,整个快一天,自己琢磨,体验这个过程,虽然慢,但是在前进本来是想爬千图网的,但是千图网为了防止反爬加了必须登录,如果用cookie去搞它肯定能搞死它,but我还没学到那边,于是我随便从里面点了一个网站名字叫图怪兽
因为他是个在线编辑的网站,所以我直接点击大图,或者复制链接会转跳到他的在线编辑器那边,他的在线编辑器里面用了js修改了一下右键,所以这一路肯定是行不通的了换一条路,回到首页,发现大图那行的小字居然也有链接点进去
奈斯,找到地址了,现在来分析他大图 的url
https://818ps.com/detail/2006904.html?route_id=15632584565688&route=3,2&after_route=3_2
https://818ps.com/detail/2007106.html?route_id=15632584565688&route=3,2&after_route=3_2
https://818ps.com/detail/1948497.html?route_id=15632584565688&route=3,2&after_route=3_2
很明显就是黄色的地方不一样,现在去首页康康,源码里面有没有这些值
有两个,现在可以写正则表达式了"/detail/(.*?).html"括号里面是我们要的内容
接下来就re.compile().findall()过滤出首页所以的链接,又因为源码中存在两个所以我们要set一下去重复在list一下
接下来就拼接我们的url做个循环打开每一个链接,在做个循环把链接的图片全下载下来这样我们就得到了第一页所以图片了。想要该模块的全部照片,只需要在外面添加个循环,去爬每一页
下面是代码:
import urllib.request
import re
for a in range(0,10):
fl_url = "https://818ps.com/search/0-0-0-0-0-null-31_1_0-0-0/" + str(a) + ".html?route_id=15632576994043&route=3,&after_route=3&per-page=36"
data = urllib.request.urlopen(fl_url).read().decode("utf-8","ignore")
tj = "/detail/(.*?).html"
p = re.compile(tj).findall(data)
p = list(set(p))
try:
for i in range(len(p)):
free = str(p)
new_url = "https://818ps.com/detail/" + free + ".html"
new_data = urllib.request.urlopen(new_url).read().decode("utf-8","ignore")
new_tj = 'https://img.tuguaishou.com/ips_templ_preview/(.*?)"'
q = re.compile(new_tj).findall(new_data)
for j in range(len(q)):
tup_url = "https://img.tuguaishou.com/ips_templ_preview/" + str(q[j])
file = "F:/bing/a/" + str(a) +str(i) + str(j) + ".jpg"
print("正在下载编号:" + str(a) + str(i) + str(j))
urllib.request.urlretrieve(tup_url,filename=file)
print("下载完成")
except urllib.error.URLError as e:
if hasattr(e, 'code'):
print(e.code)
if hasattr(e, "reason"):
print(e.reason) |
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|