苦练爬虫第二天!!!
作者:互联网
''' 去爬1号店的乐器图片 ''' from urllib import request import os import re def instrumentCrawker(url, path): if not os.path.exists(path): os.makedirs(path) #设置请求头 headers = { 'Accept': 'text/html, application/xhtml+xml, */*', # 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) ' 'Chrome/63.0.3239.26 Safari/537.36 Core/1.63.6756.400 QQBrowser/10.3.2545.400', 'DNT': '1', 'Connection': 'Keep-Alive' } #设置请求体 req = request.Request(url, headers=headers) #得到回复内容 response = request.urlopen(req) imageHtml = response.read().decode("utf-8") #两个问题:一.\U的转译问题,字符串前面加r防止转译 二.编码问题,在windows下面,新文件的默认编码是gbk,后面重置编码 pat = '<img (src=|original=)"(.*?)"(/>\n| />\n)<!-- 个性化打标:已购买、常浏览 -->' re_image = re.compile(pat) imageList = re_image.findall(imageHtml) for image in imageList: #destPath = os.path.join(r'f:\image', str(imageList.index(image) + 1) + ".jpg") #当时没有创建image文件夹,一直报错,难受 destPath = os.path.join(path, str(imageList.index(image) + 1) + ".jpg") request.urlretrieve("http:" + image[1],filename=destPath) url = "https://search.yhd.com/c6291-0-0" path = os.path.join(os.getcwd(), 'image1') instrumentCrawker(url, path)
体会:也写了两个比价简单的爬虫了,总的来说语法还是比较简单,就是其中的各种小BUG让人
非常难受呀!目前自己感觉怕重最重要的就是对内容的分析,然后定义提取内容的规律,之后处理提取到的内容。这一过程是比较麻烦的(暂时的体会,会后续更新的,加油)!
标签:url,image,爬虫,re,第二天,苦练,path,imageList,os 来源: https://www.cnblogs.com/854594834-YT/p/10541997.html