简单爬虫python实现01——获取网页源码与存储

近期的工作学习中使用到了python,分享一些初学者的心得与君共勉。

本节的内容主要是如何使用python去获取网页的源代码并存储到本地文件中,希望通过本节可以让你略微了解到python的神奇。

 

关于python 2.7的安装请参考廖雪峰老师的博客:

先上代码:

import urllib
import urllib2
def getPage(url):	
	request = urllib2.Request(url)
	response = urllib2.urlopen(request)
	return response.read()
	
url='http://www.ebay.com/sch/TShirts-/15687/i.html?Style=Basic%2520Tee&_dcat=15687&Color=Black&_pgn=1'
result=getPage(url)
print result

12行导入了必要的包

36行定义了一个函数,目的是向指定url发送http请求,并将网页的源代码返回

10行把获得的源码进行展示

在命令行执行代码的话,可以看到类似图1-1的一堆html代码,即为成功。


1-1

可以用浏览器访问一下代码中的url,可以看到类似图1-2ebay的网站。(为了逃避中文字符的处理,所以选择了英文的网站)

1-2

而在浏览的网页的空白处单击右键,选择“查看网页源代码”,可以看到类似图1-3的的html源码,实际上与图1-1中是一样的。


1-3


修改一下代码,将获取的html源码写入本地的文件。

import urllib
import urllib2
def getPage(url):	
	request = urllib2.Request(url)
	response = urllib2.urlopen(request)
	return response.read()
	
url='http://www.ebay.com/sch/TShirts-/15687/i.html?Style=Basic%2520Tee&_dcat=15687&Color=Black&_pgn=1'
result=getPage(url)
txt='D:\\result.html'
f = open(txt,"w+")
f.write(result)


1012行进行了文件操作,在D盘创建了result.html文件并将result变量中的内容写入其中。


作为一个购物网站,大部分类型的商品都是分很多页的,接下来继续修改代码,让它能够取出前5页的内容,分别写入5个文件中。

import urllib
import urllib2
def getPage(url):	
	request = urllib2.Request(url)
	response = urllib2.urlopen(request)
	return response.read()
	
url='http://www.ebay.com/sch/TShirts-/15687/i.html?Style=Basic%2520Tee&_dcat=15687&Color=Black'
p=0
while p<5:
	print ' =='+str(p+1)+'==start=='
	result=getPage(url+'&_pgn='+str(p+1))
	txt='D:\\result'+str(p+1)+'.html'
	f = open(txt,"w+")
	f.write(result)
	print ' =='+str(p+1)+'====end=='
	p=p+1
f.close()

8行修改了url字符串的结尾部分,删除了“&_pgn=1”,并将其作为后面循环的参数

1017行做了一个04的循环(当然你也可以设置成15),其中第11行和16行仅是跟踪代码,用以显示当前读到的页数。第12行的实参将循环变量p组合进去,达到获取不同页html源码的作用。

18行结束文件操作,关闭所用资源。

 

程序在命令行执行后,最后一行显示“==5====end==”,并在D盘生成如图1-4的,文件大小近似的5html文件即为成功。

1-4


本节到此结束,多谢。请关注下一节。



你可能感兴趣的:(杂项)