使用Python来获取jk资源
代码很简单说一下感想吧写代码切记不能操之过急了,一步一步来,思考怎么去构思这个代码再去做。
这个代码是我改改删删才做好的,写了删 删了写。
因为写的实在是太垃圾了,密密麻麻的,后续debug眼睛都看花了,分开写成函数,debug起来容易找,看起来又舒服。
其实这个代码可以直接丢给多线程去处理的,或者直接上scrapy框架。
在进入主页面的子页面的时候就可以去download开启线程了,然后找到主页面的的子页面的下一页的时候也可以进行download的了,我就没加了。
代码里面不懂的可以留言
结果图:
代码:
import os
import urllib
import requests
from lxml import etree
import re
def download(url):
# print(url)
resp = requests.get(url).text
html = etree.HTML(resp)
# 找到地址
pic = html.xpath('//*[@id="big-pic"]/p//img/@src')
# 找到name
name = pic.split("/")[-1]
# download
urllib.request.urlretrieve(pic, "pic/{}".format(name))
print("{}下载完毕".format(name))
def sub_page_pic(url, page):
# 截取需要替换的url
split_url = url.split("/")[-1]
# 把.后面的数字提取出来,然后再拼接
num_url = url.split(".")[-2].split("/")[-1]
for i in range(2, page + 1):
"""
第一页
https://www.mmonly.cc/ktmh/dmmn/96196.html
第二页后面以此类推
https://www.mmonly.cc/ktmh/dmmn/96196_2.html
"""
# 这里是拼接替换 具体可以分析一下网站是怎么组成的 如上
change_url = url.replace(split_url, num_url + "_%d.html" % i)
# 搞完之后直接丢进去download
download(change_url)
# 找到所有下一页的内容
def next_page(sub_page_url):
resp = requests.get(sub_page_url)
resp.encoding = "gb2312"
# 匹配有几页
re_match = re.search(r".*?共(\d+)页", resp.text)
# 页数转int 然后 把子页面和 子页面的页数丢给下一个函数去处理
all_page = int(re_match.group(1))
sub_page_pic(sub_page_url, all_page)
def first():
url = "https://www.mmonly.cc/tag/jkzf/"
resp = requests.get(url)
resp.encoding = "gb2312"
html = etree.HTML(resp.text)
href = html.xpath('//*[@id="infinite_scroll"]/div/div/div/div/a/@href')
# 首先我们需要找到最主页面的page 然后迭代page
for item in href:
resp = requests.get(item)
# 设置编码 不然找不到
resp.encoding = "gb2312"
# 如果下一页存在的话,我们去迭代所有的下一页,找到之后再放入download里面去下载
if "下一页" in resp.text:
# 需要转换成str
next_page(str(item))
# 下载当前的页面 不包括下一页的内容
download(str(item))
if __name__ == '__main__':
if not os.path.exists("pic"):
os.mkdir("pic")
first()
如何下载不同标签的图片?修改jkzf吗 lihu5841314 发表于 2021-6-27 08:56
加油奥利给 去搞搞彼岸图网 我翻车好久了4K加密验证
链接发来 嗯!?壁纸吗 看一下url我就跑 南归不NG 发表于 2021-6-26 20:13
看一下url我就跑
哈哈哈,就你眼睛尖 这个url真不错 这效果图我不是很明白,能多放几张吗 url收了{:1_918:} 收藏了一个好东西 谢谢LZ分享 当然我的本意不是为了这些图片 只是为了学习技术{:1_889:} Darkline 发表于 2021-6-26 22:24
反馈一下可以考虑增加分类存放 目前是统一存放在pic一个文件夹里的。
我靠好主意 下次一定