python小白第三天,爬壁纸
首先,膜拜论坛里其他爬虫大佬,妹子图有人前面发过,一个是Beautiful爬的,一个是多线程,但是我保证,我没有看着他们的写,而是自己独立写的简单的单线程爬取,有的爱友可能没有python环境,我就顺便打包了一下,嘻嘻。大佬勿喷,小白一起交流。exe下载地址:https://www.lanzouj.com/i57m9wf
我不知道行不行,因为我电脑测试成功了,不知道没有环境的行不行,可以试试,激起大家学爬虫的热情。
import requests
import os
from lxml import etree
class Spider(object):
def headers(self):
head={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0',
'Referer':'https://www.mzitu.com/tag/youhuo/'
}
self.first_request(head)
def first_request(self,head):
url = 'http://www.mzitu.com'
response = requests.get(url,headers=head)
# print(response.content.decode())
html = etree.HTML(response.content.decode('utf-8'))
Bigtit_list = html.xpath('//ul[@id="pins"]/li/a/img/@alt')
Bigsrc_list = html.xpath('//ul[@id="pins"]/li/a/@href')
# print(Bigtit_list,Bigsrc_list)
for Bigtit,Bigsrc in zip(Bigtit_list,Bigsrc_list):
if os.path.exists(Bigtit) == False:
os.mkdir(Bigtit)
print(Bigsrc)
self.second_request(Bigtit,Bigsrc,head)
def second_request(self,Bigtit,Bigsrc,head):
for i in range(1,15):
response = requests.get(Bigsrc+'/'+str(i),headers=head)
html = etree.HTML(response.content.decode())
img_name = html.xpath('//div[@class="main-image"]/p/a/img/@alt')
img_link =html.xpath('//div[@class="main-image"]/p/a/img/@src')
for name,link in zip(img_name,img_link):
try:
rst = requests.get(link,headers=head)
img = rst.content
print(link)
file_name = Bigtit +'\\'+link.split('/')[-1]
print('正在下载的图片为:',name)
with open(file_name,'wb') as f:
f.write(img)
except Exception as err:
print(err)
spyder=Spider()
spyder.headers()
下面这个源码是壁纸88的,昨天一个爱友问我能不能爬爬试试,我试了试,只能爬取网站面向大众的图片,后台原画质的图片,我抓包到原画质图片的下载地址,可是毕竟还是有点太小白了,不会分析后面的特征码从哪里来,很抱歉。
import requests
import re
from lxml import etree
class Spyder(object):
def first_url(self,page):
for i in range(1,page):
url = 'http://www.bizhi88.com/s/122/'+str(i)+'.html'
response = requests.get(url)
html = response.content.decode()
mid_tit_list = re.compile('<a class="title" href=".*?" target="_blank" title=".*?">(.*?)</a>').findall(html)
mid_url_list = re.compile('<a class="title" href="(.*?)" target="_blank" title=".*?">.*?</a>').findall(html)
for mid_tit,mid_url in zip(mid_tit_list,mid_url_list):
self.get_url(mid_tit,mid_url)
def get_url(self,mid_tit,mid_url):
url = 'http://www.bizhi88.com'+mid_url
response = requests.get(url)
html = etree.HTML(response.content.decode())
new_url = html.xpath('//div[@class="layout wp-con"]/div/img/@src')
# print(new_url)
self.data_save(new_url,mid_tit)
def data_save(self,new_url,mid_tit):
response = requests.get(new_url)
data = response.content
print('正在下载的图片名字是:',mid_tit)
with open(mid_tit+'.jpg','wb') as f:
f.write(data)
spyder = Spyder()
page = int(input('请输入要下载而页数:'))
spyder.first_url(page)
嘚瑟挨顿揍 发表于 2019-7-29 13:13
麻烦问一下python基础是看的PDF还是视频啊看的谁的
链接:https://pan.baidu.com/s/1AZ6nczGBALVq55IhmtQAZQ
提取码:dvrd
复制这段内容后打开百度网盘手机App,操作更方便哦
视频这是我看的资料不知道适不适合你 乐于助人 发表于 2019-7-29 13:06
我也不太清楚其他小伙伴不知道成功没
我晚上回去再试试吧,对了,我有几个问题想解决下,不知可否交流下。还有我目前也买了书在看,刚起步,还没稳下心 想学爬图 大概要怎么学习 可以指导一下吗 夜记梦 发表于 2019-7-29 11:47
想学爬图 大概要怎么学习 可以指导一下吗
我的顺序是 python基础语法 爬虫实战然后自己摸索着写 运行后只看到文件夹,但是里面没有图片啊,朋友{:1_909:}
indian806 发表于 2019-7-29 11:54
运行后只看到文件夹,但是里面没有图片啊,朋友
我市的时候是有的...可能是没环境吧 软件测试截图 感觉有点厉害啊,兄弟 精神可嘉。我要向你学习 楼主牛逼,学的哪个教程。可以共享下不 我爱猫哥 发表于 2019-7-29 12:18
楼主牛逼,学的哪个教程。可以共享下不
上个帖子回复里面有教程链接