开发者社区> 郭璞> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

爬虫之煎蛋网妹子图 大爬哦

简介: 今天为了测试一下urllib2模块中的headers部分,也就是模拟客户端登陆的那个东东,就对煎蛋网妹子图练了一下手,感觉还可以吧。分享一下! 代码如下 # coding:UTF-8 import urllib2,urllib,re,random def getHtml(url) : request = urllib2.
+关注继续查看

今天为了测试一下urllib2模块中的headers部分,也就是模拟客户端登陆的那个东东,就对煎蛋网妹子图练了一下手,感觉还可以吧。分享一下!


代码如下

# coding:UTF-8

import urllib2,urllib,re,random


def getHtml(url) :
    request = urllib2.Request(url,headers=headers)
    response = urllib2.urlopen(request)
    page = response.read()
    return page

def getImageUrls(page):
    reg = r'src="(.+?\.jpg)"'
    imageReg = re.compile(reg)
    img_urls = re.findall(imageReg,page)
    return img_urls

# 根据给定的路径,文件名,将指定的数据写入到文件中
def writeToFile(path,name,data):
    file = open(path+name,'wb')
    file.write(data)
    file.close()
    print name+" has been Writed Succeed!"

#writeToFile(path,str(name)+".jpg",content)
def downloadImages(images_url) :
    for i, item in enumerate(images_url):
        everypicture = getHtml(item)
        # 此处下载之后的文件使用了item来命名是为了避免图片的覆盖
        writeToFile(path, str(i+random.randint(1,100000000)) + ".jpg", everypicture)


# --------------------------------------------------------------------------------------------------
# 下面是我们的测试代码
headers = {
    'referer':'http://jandan.net/ooxx/page-1986',
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36'
}

path = "F:\\pachong\\jiandan\\"
# 注意这里的URL不是全部,按理应该使用url拼接自动完成的,但是我这里是手动修改的
originalurl = 'http://jandan.net/ooxx/page-1986'
page = getHtml(originalurl)
images_url = getImageUrls(page)
downloadImages(images_url)


爬虫结果

这里写图片描述

总结

代码不多,核心在于思想。逻辑如下:

  • 使用headers绕开网站的验证
  • 获得主页面中所有的图片的url
  • 根据图片url循环的读取网页内容
  • 再循环中就把图片写入到本地

是不是很简单呢,但是这里有不智能的地方,那就是没有把原始的url做处理,如果再用url拼接技术的话,我们就可以实现“只需要一张网址,就可以抓取我们想要的所有的图片了”。

代码中不可避免的存在一些问题,欢迎大家批评指正!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
爬虫基础-第六天
在pycharm写正则,并学习re模块
0 0
百度爬虫爬一次时间计算法则
百度爬虫爬一次时间计算法则www.20200824.com
0 0
爬虫学的好,牢饭吃得好(爬虫实例)
爬虫学的好,牢饭吃得好(爬虫实例)
0 0
scrapy突破反爬的几种方式(三)
一些小的技巧配置,让我们的爬虫被识别的概率降低。 cookies 的禁用 在settings.py 文件中有一个参数是: COOKIES_ENABLED = False 默认情况下是禁用的,request 就不会把 cookies 带进去。
833 0
scrapy突破反爬的几种方式(二)
上回说到设置随机 User-Agent ,这次来一个随机代理 ip 的设置。 代理ip 在爬虫中,为了避免网站将我们的 ip 封掉,我们就要使用代理 ip 。
955 0
scrapy突破反爬的几种方式(一)
最近在学习 scrapy 中,突破反爬限制的几种方法,总结一下,记录学习过程中的收获。 在以后的学习中也有可能会用到这些知识。 Downloader Middleware 简单介绍一下 Downloader Middleware 即下载中间件,它处于 Scrapy 的 Request 和 Response 之间的处理模块,在 scrapy 的整个架构中起作用的位置是以下两个 在Scheduler 调度出队列的 Request 发给 Downloader 下载之前,也就是我们可以在 Request 执行下载之前对其进行修改。
1052 0
python爬虫学习:爬虫QQ说说并生成词云图,回忆满满
自学过一段时间的python,用django自己做了个网站,也用requests+BeautifulSoup爬虫过些简单的网站,周末研究学习了一波,准备爬取QQ空间的说说,并把内容存在txt中,读取生成云图。
1307 0
Python爬虫! 单爬,批量爬,这都不是事!
昨天做了一个煎蛋网妹子图的爬虫,个人感觉效果不错。但是每次都得重复的敲辣么多的代码(相比于Java或者其他语言的爬虫实现,Python的代码量可谓是相当的少了),就封装了一下!可以实现对批量网址以及单个网址的爬虫! 核心代码 # coding:UTF-8 # 导入我们需...
601 0
python实现简易采集爬虫
#!/usr/bin/python #-*-coding:utf-8-*- # 简易采集爬虫 # 1.采集Yahoo!Answers,parseData函数修改一下,可以采集任何网站 # 2.
1077 0
+关注
郭璞
一切就交给时间,它会给我答案。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Python第五讲——关于爬虫如何做js逆向的思路
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载