本帖最后由 yijiuxiaole 于 2021-12-22 12:47 编辑
在来个简单的爬虫
上个帖子有人说,不出教程差评,这次我出了,给个好评.hhh
还是那句话 我变量名很随意的 不要跟我学 不是太会排版
http://bz.hzwdd.cn/ 这是网站 右键检查 或者f12 你们慢点弄 毕竟谁也不容易是不是嘞 仅供学习
带来两个版本 一个是单线程 另一个是线程池(不要太狠) 用第一个就好 你们记得改页数 我弄的是美女模特
[Python] 纯文本查看 复制代码
import time
import os
import requests # 网络请求
if not os.path.exists('壁纸'): # 检测文件夹是否存在 不存在则创建
os.mkdir('壁纸')
def get_url(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36'
}
print('正在下载' + '*****' + url)
response = requests.get(url, headers=headers) # 进行请求
a = response.json() # 请求返回的是json数据
urls = a['data']['list']
for i in urls:
id = i['id']
ulss = i['url'] # 得到真实的url
response1 = requests.get(url=ulss,headers=headers) # 在请求
aa = response1.content # 保存二进制
f = open(f'./壁纸/{id}.jpg', 'wb')
f.write(aa) # 写入
f.close()
print(f'保存成功{ulss}')
time.sleep(2)
print('休息2秒哦')
if __name__ == '__main__':
for i in range(3): # 页数
get_url(f'http://bz.hzwdd.cn/api.php?cid=6&start={i}&count=10') # url
这个是线程池
[Python] 纯文本查看 复制代码
import time
import os
import requests
from concurrent.futures import ThreadPoolExecutor
if not os.path.exists('壁纸'):
os.mkdir('壁纸')
def get_url(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36'
}
print('正在下载'+'*****'+url)
response = requests.get(url, headers=headers)
a = response.json()
urls = a['data']['list']
for i in urls:
id = i['id']
ulss = i['url']
response1 = requests.get(url=ulss,headers=headers)
time.sleep(1)
aa = response1.content
f = open(f'./壁纸/{id}.jpg', 'wb')
f.write(aa)
f.close()
print(f'保存成功{ulss}')
time.sleep(1)
if __name__ == '__main__':
with ThreadPoolExecutor(50) as t:
for i in range(3): # 页数
t.submit(get_url, f'http://bz.hzwdd.cn/api.php?cid=6&start={i}&count=10') # 4k壁纸cid=360new
time.sleep(2)
print('休息2秒哦')
print('全部下载完成')
|