需求:最近对python爬虫感兴趣,于是也依葫芦画瓢试着用爬虫爬取之前喜欢的网站上的复杂的钥匙图片,网站:http://www.mm131.com/xinggan,其中每一套图都是一张一个页面,存一套图如果是手动得点翻几十个页面,但现在用爬虫的话,就很方便了,只需输入套图的id,轻轻松松就可以把复杂的钥匙存到硬盘了。
大神说:talk is cheap show me the code!
接下来说下一般网页爬虫的的过程
1.查看目标网站页面的源代码,找到需要爬取的内容
2.用正则或其他如xpath/bs4的工具获取爬取内容
3.写出完整的python代码,实现爬取过程
url:http://www.mm131.com/xinggan/2373.html
复杂的钥匙图片
漂亮吧!!
这样,你的本地就会有第一张复杂的钥匙图了,
第一张既然已经保存了,那剩下的也都不要放过,继续放代码: 4.继续把代码补全 载入所需模块,并设置图片存放目录 #coding:utf-8import requestsimport reimport osfrom bs4 import BeautifulSouppic_id = raw_input('Input pic id: ')os.chdir("G:pic")homedir = os.getcwd()print("当前目录 %s" % homedir )fulldir = unicode(os.path.join(homedir,pic_id),encoding='utf-8') #图片保存在指定目录,并根据套图id设置目录if not os.path.isdir(fulldir): os.makedirs(fulldir) 因为需要不停翻页才能获取图片,所以我们先获取总页数 url='http://www.mm131.com/xinggan/%s.html' % pic_idhtml = requests.get(url).text#soup = BeautifulSoup(html)soup = BeautifulSoup(html, 'html.parser') #使用soup取关键字,上一行会报错UserWarning: No parser was explicitly specifiedye = soup.span.stringye_count = re.search('d+',ye)print('pages:共%d页' % int(ye_count.group())) 主函数 def downpic(pic_id): n = 1 url='http://www.mm131.com/xinggan/%s.html' % pic_id while n <= int(ye_count.group()): #翻完停止 #下载图片 try: if not n == 1: url='http://www.mm131.com/xinggan/%s_%s.html' % (pic_id,n) #url随着n的值变化的 html = requests.get(url).text pic_url = re.search(r'img alt=.* src="(.*?)" /',html,re.S) #使用正则去关键字 pic_s = pic_url.group(1) print(pic_s) pic= requests.get(pic_s, timeout=2) pic_cun = fulldir + '\' + str(n) + '.jpg' fp = open(pic_cun,'wb') fp.write(pic.content) fp.close() n += 1 except requests.exceptions.ConnectionError: print("【错误】当前图片无法下载") continueif __name__ == '__main__': downpic(pic_id) 程序跑起来