爬取网站图片(大数据挖掘)

通过往期的文章,我们可以爬取网页上面的文字信息,本期介绍一下如何爬取图片信息,以及保存图片到本地。建立爬虫我们以校花网为爬取对象,爬取图片信息:http://www.xiaohuar.comclass PowersSpider(scrapy.Spider):
name = “xiaohua” # 爬虫的名字
allowed_domains = [“xiaohuar.com”]
# 定义第一个URL
first_url = ‘http://www.xiaohuar.com/list-1-1.html’
def start_requests(self):
# 返回调度器处理好的request
yield Request(self.first_url, self.parse)
定义好爬虫的基本信息后,定义prase函数来处理爬虫信息def parse(self, response):
tds = BeautifulSoup(response.text, ‘lxml’).find_all(class_=’img’)
item = PowersItem_xiaohua() # item初始化
# print(tds)
for td in tds:
name = td.find_all(‘a’)[0].find(‘img’)[‘alt’]
address = td.find_all(‘a’)[0].find(‘img’)[‘src’]
address = ‘http://www.xiaohuar.com’ + address
item[‘name’] = name
item[‘address’] = address
yield item
通过查看网页信息,可以很清楚的知道我们爬取照片的信息,在照片信息里面有一个图片地址,但是这并不是图片的真正地址,图片的真正地址需要加上校花网的主页地址,当你把这个真正的图片地址输入浏览器时,就可以很清楚的看到图片的原图了,右击可以另存为,但是我们不会一个一个照片的保存保存照片到本地scrapy自带图片保存的中间组件,但是使用起来,比较麻烦,我们自己写pipeline来保存照片class Powerspipeline_xiaohua(object):
def process_item(self, item, spider):
headers = {
‘User-Agent': ‘Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36′}
if isinstance(item, PowersItem_xiaohua):
#请求网页
req = urllib.request.Request(url=item[‘address’], headers=headers)
#打开网页
res = urllib.request.urlopen(req)
#保存图片,并修改图片的名字
file_name = os.path.join(r’D:\foxtable\picture’, item[‘name’] + ‘.jpg’)
with open(file_name, ‘wb’) as fp:
fp.write(res.read())#保存图片
else:
print(‘no find items’)
return item
python自带urllib,也可以使用urllib来做爬虫,在此我们定义 了一个headersheaders:在使用python爬虫爬取数据的时候,经常会遇到一些网站的反爬虫措施,一般就是针对于headers中的User-Agent,如果没有对headers进行设置,User-Agent会声明自己是python脚本,而如果网站有反爬虫的想法的话,必然会拒绝这样的连接。而修改headers可以将自己的爬虫脚本伪装成浏览器的正常访问,来避免这一问题。美女照片运行以上代码,就可以把美女照片全部保存到本地了本期只是爬取了一个界面,网友们可以参考往期的文章,爬取更多的界面,以便保存更多的美女照片。下期分享:下期我们分享一下如何爬取音乐文件谢谢大家的点赞与转发,关于分享的文章,大家有任何问题,可以在评论区一起探讨学习!!!

本文出自快速备案,转载时请注明出处及相应链接。

本文永久链接: https://kuaisubeian.cc/45078.html

kuaisubeian