给python爬虫入门
首页 > 学习    作者:Iamyc   2018年9月23日 19:17 星期日   热度:328°   百度已收录  
时间:2018-9-23 19:17   热度:328° 

目标站:最新大学校花网

首先分析下,这个站是帝国cms的,肯定支持php。

不过做爬虫的话,这种静态页面没什么好讲的,反爬机制弱的一批,对初学者来讲练手很不错的。。。

ok,用python里的网络+文件流+re正则就轻轻松松了 先页面分析

每页是类似这种:http://www.xiaohuar.com/list-1-(1~43).html

当然,首页是:http://www.xiaohuar.com/hua

所以首页单独处理下就ok

好了,直接上代码,有注释


#! /usr/bin/env python
#! -*-coding:utf-8 -*-  #确定utf-8编码

import re           #正则匹配库
import requests     #网络访问库

headers={           #增加头信息
	'User-Agent': 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)'
}



def other():                                                  #请看first()函数,一样的
	i = 25
	for x in range(1,44):
		url = "http://www.xiaohuar.com/list-1-"+str(x)+".html"
		
		html = requests.get(url)
		lists = re.findall('src="(.*?).jpg" />',str(html.content))
		for jpg in lists:
			if jpg[0] == '/':
				jpg = "http://www.xiaohuar.com"+jpg
			
			jpg = jpg+".jpg"
			try:
				fp = open('e:/picture/'+str(i)+'.jpg','wb')
				i = i+1
				fp.write(requests.get(jpg,headers=headers,timeout=5,allow_redirects=False).content)
			
				fp.close()
				print "Get -->>" + jpg 
			except:
				pass
		
	
def first():
	i = 0                                                         #i作为图片的名称,从0开始
	url1 = "http://www.xiaohuar.com/hua"
	html = requests.get(url1)                                     #访问url
	lists = re.findall('src="(.*?).jpg" />',str(html.content))    #得到url的html代码,re匹配出含有jpg的地址
	for jpg in lists:
		if jpg[0] == '/':                                         #形如/d/file/23423.jpg,相对地址还原出绝对地址
			jpg = "http://www.xiaohuar.com"+jpg
			
		jpg = jpg+".jpg"                                          #添加.jpg后缀
		#print jpg
		
		
		try:                                                      #防止异常
			fp = open('e:/picture/'+str(i)+'.jpg','wb')           #文件流打开到本地jpg
			i = i+1                                               #自增1,防止同名称覆盖
			fp.write(requests.get(jpg,headers=headers,timeout=5,allow_redirects=False).content)  #写入图片
			
			fp.close()                                            #关闭文件流
			print "Get -->>" + jpg                           
		except:
			pass                                                  #容错,错了就pass,过掉		
	

if __name__ == '__main__':

	first()    #首页
	
	other()    #剩下的43页
	
		
		
		
		
		
要的打包带走:校花大全






二维码加载中...
本文作者:Iamyc      文章标题: 给python爬虫入门
本文地址:http://lang-v.com/first_cms/yc/emlog/src/?post=27
版权声明:若无注明,本文皆为“YC's Blog”原创,转载请保留文章出处。

返回顶部    首页    手机版本    后花园  
版权所有:YC's Blog    站长: Iamyc    程序:emlog