看了两晚的爬虫视频和正则表达式,昨晚照着写了一遍不能运行,今天中午再完善了一下终于运行起来了,哈哈,看着代码一行行的跑,文件夹里面的图片一张张增加,这个feel倍爽!
这个(.*?)正则表达式真的厉害,好像是无所不能的哈哈~~~
实现的功能:爬取网页图片并自动翻页,把爬取下来的图片存放到指定路径,并按照一定的方式命名,下面是代码。
1 import re 2 import requests 3 4 url = ‘http://www.jikexueyuan.com/course/web/?pageNum=2‘ 5 total_page = 20 6 for i in range(2,total_page+1): 7 url = re.sub(‘pageNum=\d+‘,‘pageNum=%d‘%i,url,re.S) # 自动翻页 8 res = requests.get(url) 9 html = res.text 10 print(res.status_code) # 检查访问状态 11 print(re.search(‘\d+‘, url).group()) # 打印页码 12 pic_url_field = re.findall(‘<div class="lessonimg-box">(.*?)</div>‘, html, re.S) #正则表达式 (.*?) 13 for x in pic_url_field: 14 pic_url = re.findall(‘img src="(.*?)" class="lessonimg"‘, x, re.S) # 正则表达式 (.*?) 抓取部分文字,先大再小 15 for each in pic_url: 16 print(‘now downloading:‘ + each) 17 res1 = requests.get(each) # each 为列表里面的一个元素即一个链接 18 pic = res1.content 19 photo = open(‘Y:/2019python/test/imgs/‘ + each[-10:], ‘wb‘) # 把图片下载到指定路径 20 photo.write(pic) 21 photo.close() 22 print(‘Done!‘)
原文:https://www.cnblogs.com/neoj323/p/11577992.html