加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
get_imgs.py 2.03 KB
一键复制 编辑 原始数据 按行查看 历史
Result-chen 提交于 2019-06-27 16:19 . 爬虫
# -*- coding:utf-8 -*-
import os
import requests
from bs4 import BeautifulSoup
from gevent import monkey; monkey.patch_socket()
import gevent
# 指定一个浏览器头
HEADERS = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 \(KHTML, '
'like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}
# 代理,免费的代理只能维持一会可能就没用了,自行更换
PROXIES = {
'http': '111.23.10.27:8080'
}
BASE_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'imgs')
BASE_URL = 'http://mm.155.pw/xinggan/'
def get_url(page_id):
"""获取页面地址"""
foot_url = '.html'
return BASE_URL + str(page_id) + foot_url
def get_html(url):
"""发出请求获得HTML源码的函数"""
try:
# Requests库的get请求
resp = requests.get(url, headers=HEADERS).text
except:
# 如果请求被阻,就使用代理
resp = requests.get(url, headers=HEADERS, proxies=PROXIES).text
return resp
def main(page_id):
"""遍历所有网址图片存入数组"""
# for url in all_page(start, end):
url = get_url(page_id)
soup = BeautifulSoup(get_html(url), 'lxml')
arr = soup.find_all('img', 'post-item-img')
path = soup.head.title.string.split(' ')[0]
isExists = os.path.exists(os.path.join(BASE_DIR, path))
# 如果不存在
if not isExists:
print('makedir', path)
# 创建文件夹
os.makedirs(os.path.join(BASE_DIR, path))
# 如果存在了就返回False
else:
print(path, 'already exists')
# 切换到创建的文件夹
os.chdir(os.path.join(BASE_DIR, path))
for img in arr:
urls = img['data-original']
imgs = requests.get(urls)
path1 = urls.split('/')[-1]
with open(path1, 'wb') as path:
path.write(imgs.content)
print('成功' + ':' + path1)
if __name__ == '__main__':
for i in range(2101, 2105):
g = gevent.spawn(main, i)
g.join()
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化