美女图片爬取

news/2024/12/22 9:37:06/

有统计说一个网站的流量百分之八十都是由爬虫带走的。我感觉这个比例还是小了,只有用过爬虫才会知道爬虫的厉害。下面我将会介绍一种使用爬虫来爬取图片网站中的图片的方法。

首先,我们需要定义一个专门的类,在类外通过传入网址来进行爬取。

class GrilPhoto:pass

下面,我们分析一下这个类所需要的功能,然后设计出大致的结构。

我们需要生成动态的url,所以需要定义一个函数来拼接完整的url。

    def make_url_list(self):"""生成url列表:return: 拼接后的完整url"""return [self.url_base.format(i) for i in range(1,10)]

我们需要定义一个函数返回目前访问的这个网站的源码内容。

 def download_url(self,url_base):"""请求网站,返回网站的源码内容:param url_base: 网站url:return: 网站内容"""time.sleep(0.05)request = requests.get(url_base,proxies=self.proxies,headers=self.headers)#使用'.text'返回的是字符串类型,使用'.content'返回的是字节流,此处使用字符串类型return request.text

网站内容已经有了,那么接下来就是进行规则匹配了。

 def parse_xpath(self,text):"""匹配函数:param text:网站内容:return:匹配到的内容(列表形式)"""html = lxml.html.fromstring(text)html_data = html.xpath('//body/div[2]/div[8]/ul/li/a/img/@src')print(html_data)return html_data

上步返回的就是每一张图片的完整路径,那么接下来我们只需要保存下载下来就可以了。

    def save_photo(self,html_data,num_page):"""保存下载图片:param html_data:匹配到的内容:param num_page: 页码:return:"""for i in range(len(html_data)):time.sleep(0.05)req = requests.get(html_data[i],proxies=self.proxies,headers=self.headers)with open('D:/美女图片/第'+str(num_page)+'页-0'+ str(i) +'.jpg','wb') as f:f.write(req.content)

注意:我这里指定的保存路径是在D盘下的一个叫美女图片的文件夹中,当然,你也可以指定其他的文件夹,前提是这个文件夹存在(不存在当然要自己创建喽)。

最后一步,定义运行函数

 def run(self):"""运行函数:return:"""list = self.make_url_list()for i in range(len(list)):text = self.download_url(list[i])data = self.parse_xpath(text)self.save_photo(data,i+1)

最后,附上整个程序的源码,在这个代码中我爬取的是美女图片,你也是可以指定其他网站的,不过,需要修改匹配规则,有兴趣的可以尝试尝试其他的网站。

import requests
import lxml.html
import timeclass GirlPhoto:def __init__(self):"""初始化对象"""#代理IPself.proxies = {"http":"http://39.137.69.6:80"}#请求头self.headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",}#爬取网址(待拼接)self.url_base = 'http://www.umei.cc/meinvtupian/{}.htm'def download_url(self,url_base):"""请求网站,返回网站的源码内容:param url_base: 网站url:return: 网站内容"""time.sleep(0.05)request = requests.get(url_base,proxies=self.proxies,headers=self.headers)#使用'.text'返回的是字符串类型,使用'.content'返回的是字节流,此处使用字符串类型return request.textdef make_url_list(self):"""生成url列表:return: 拼接后的完整url"""return [self.url_base.format(i) for i in range(1,10)]def parse_xpath(self,text):"""匹配函数:param text:网站内容:return:匹配到的内容(列表形式)"""html = lxml.html.fromstring(text)html_data = html.xpath('//body/div[2]/div[8]/ul/li/a/img/@src')print(html_data)return html_datadef save_photo(self,html_data,num_page):"""保存下载图片:param html_data:匹配到的内容:param num_page: 页码:return:"""for i in range(len(html_data)):time.sleep(0.05)req = requests.get(html_data[i],proxies=self.proxies,headers=self.headers)with open('D:/美女图片/第'+str(num_page)+'页-0'+ str(i) +'.jpg','wb') as f:f.write(req.content)def run(self):"""运行函数:return:"""list = self.make_url_list()for i in range(len(list)):text = self.download_url(list[i])data = self.parse_xpath(text)self.save_photo(data,i+1)girl = GirlPhoto()
girl.run()

 

 

 

 


http://www.ppmy.cn/news/420888.html

相关文章

美女妹妹照片_生活照(2)

征得妹妹同意,以后每天发片2张,希望大家喜欢!,不过在欣赏之余,记得帮他去投票哦,她最近正在参加搜星大赛,希望得到大家的支持!投票地址:(每天可以投10票)http://sostar.cn.yahoo.com/poll/showo…

阳光灿烂的美女照片!

业余拍摄,水平有限! 拍摄于西安大雁塔!

3D模型欣赏:短发美女,小恶魔

翼次方李老师的作品,短发美女,小恶魔。 或许你还想了解这些内容: 文章推荐阅读 【 学习企鹅圈:1072172722 】 : 3D游戏建模前景如何?是做什么的?大牛分享月薪2万教程工具笔记【自提】 次世代…

剪了短发

今天去剪了个短发 不知道为什么 只是去剪了 一直叫那师傅剪短点 剪完感觉清爽了好多^_^

python倒三角形脸适合什么发型_倒三角形脸适合什么短发

爱上美丽 2017-11-01 一个女人漂不漂亮,发型最重要!但是要怎么找到适合自己的发型呢?请慢慢往下看。 脸型与刘海完美搭: 1、长型脸 其刘海很适合长脸型的姑娘们,以颧骨延伸线与刘海的交接点处开始留长哦,并…

短发

周末心血来潮,突然想改换一下发型, 首先,每天面对镜子中同样的自己,有些厌倦了,给自己换个造型吧; 其次,夏天到了,剪成短发会比较清爽些。 想想自己十几年来一直长发飘飘的,突然想…

发一张你认为很漂亮的美女照片?

顾锦盒 ,INFP, 4w5 565 人赞同 谢谢大家的赞。更新几张。 春风再美也比不过你的笑。 编辑于 2016-04-11 75 条评论 感谢 分享 收藏 • 没有帮助 • 举报 • 作者保留权利 201赞同 反对,不会显示你的姓名 吴名士 ,公众号&#xf…