Python爬图源码,小虫子真的可以为所欲为!有福利哦!!!
本帖最后由 小心boss 于 2019-11-28 23:05 编辑################################################
前段时间开始自学Python,目前处于新手阶段.
试着写了了个爬虫,分享一下.
有没有也在学Python的,共勉!
################################################
老司机的身份被人拆穿了。。。╮( ̄▽ ̄")╭
之前贴的代码好像有点问题,改了下.感谢各位大佬.
有用的话,请个热心.谢谢--2019 11.2822:28
# -*- coding=utf-8 -*-
'''
人生苦短,我用Python
'''
###以此怀念###
import time
import requests
import re
import lxml
import os
from bs4 import BeautifulSoup
####################################
url = 'https://www.mzitu.com/all'# 需要爬取的网页地址
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0',
'Accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
'Accept-Encoding': 'gzip',
"Referer": "https://www.mzitu.com/all"
} # 创建头部信息
def get(url): #发送网络请求
a= requests.get(url,headers=headers)
html = a.text
return html
def main():
soup = BeautifulSoup(get(url),'lxml') #解析爬取网址
all_url = soup.find('div',class_='all').find_all('a') #过滤数据到all_url列表中
for mulu in all_url: #遍历url列表
if mulu.get_text() == '早期图片':
continue
else:
result = {
'title': mulu.get_text(),
'link': mulu.get('href'),
'ID': re.findall('\d+', mulu.get('href'))
}#过滤出字典
mulu_url = result['link']
print('读取图帖链接:', mulu_url)
soup2 = BeautifulSoup(get(mulu_url), 'lxml') #解析字典中的目录地址
img_mulu = soup2.find("div", {"class": "main-image"}).find("img")['src'] #匹配图片地址
page = soup2.find_all("span") #取图贴页数
max_page = page.get_text()
os.chdir(img_dir)
new_dir(result['title'])
for j in range(1,int(max_page) + 1):
next_img_page = mulu_url + '/' + str(j)
img_html = BeautifulSoup(get(next_img_page), 'lxml')
#图片链接
img_url = img_html.find("div", {"class": "main-image"}).find("img")['src']
#图片名
img_name = result['title']+str(j)
# 下载图片
down(img_name,img_url)
print('图片地址: ',img_url)
time.sleep(yanshi)
def down(name,image):
f = open(name + '.jpg','wb+')
img = requests.get(image,headers=headers)
if str(img) == '<Response >':
print('下载图片...',end='')
f.write(img.content)
f.close()
def new_dir(name):#创建文件夹
if os.path.exists(name):
print('文件夹已存在')
os.chdir(name)
else:
print('创建文件夹: {}'.format(name))
os.mkdir(name)
os.chdir(name)
if __name__ == '__main__':
img_dir = 'f:\学习资料'# 设定存储爬取图片的路径
new_dir(img_dir)
yanshi = 0.5 #设定抓取图片延时(0.5秒)
main()
#######The End 2019 11.2822:28 ###################
小心boss 发表于 2019-11-30 14:00
我后面加了断点继续... 要的话,我把代码贴上来.
麻烦你贴一下。
另外,现在这一刻,会出现错误:
读取图帖链接: https://www.mzitu.com/211657
Traceback (most recent call last):
File "mzitu.py", line 85, in <module>
main()
File "mzitu.py", line 40, in main
img_mulu = soup2.find("div", {"class": "main-image"}).find("img")['src'] #匹配图片地址
AttributeError: 'NoneType' object has no attribute 'find'
小心boss 发表于 2019-11-28 21:11
昨天跑了一晚上,没问题的,你这边报多少什么错
Traceback (most recent call last):
File "D:/desktop/mzitu.py", line 76, in <module>
main()
File "D:/desktop/mzitu.py", line 49, in main
down(img_name, img_url)
File "D:/desktop/mzitu.py", line 55, in down
f = open(name + '.jpg', 'wb+')
FileNotFoundError: No such file or directory: '酒店约会小热巴,真实情境满足你对丝足美腿的幻想1.jpg'
>>> 支持一下 学习学习,支持一下 卧槽,你爬的什么网站。。。 学习学习,支持一下 支持下 哈哈哈哈
谢谢分享!
执行报错了