用python抓取页面并进行处理
主要目的:抓取某个网页的源代码,把里面需要的数据进行处理,并保存到数据库中。已经实现了抓取页面并读取数据。步骤一、抓取页面,这一步很简单,引入urllib,用urlopen打开网址,并用read()方法读取数据。为了方便测试,用本地文本文件代替抓取网页
步骤二、处理数据,如果页面代码比较规范标准,可以用HTMLParser进行简单处理,只是具体情况需要具体分析,感觉还是用正则比较好一些,顺便练习一下刚学习的正则表达式。
其实正则也是一种比较简单的语言,其中符号比较多,有点晦涩难懂,只能是多加练习,多加实践了。
步骤三、把处理的数据保存到数据库中,用pymssql就可以处理,这里只是简单的保存到文本文件中。
扩展下去,利用这个功能还可以实现抓取整个网站的图片、自动声称sitemap文件等功能。下一个任务,研究python的socket功能
# -*- coding:gbk -*-
import urllib
import re
#pager=urllib.urlopen([url]http://www.123.com/index.html[/url])
#data=pager.read()
#pager.close()
f=open(r"D:\2.txt")
data=f.read()
f.close()
#处理数据
p=re.compile('(?<=class=one.).+?(?=</div></div>)',re.I|re.S)
m=p.findall(data)
s=""
for datan in m:
#继续处理数据,取出标题、简介、图片和链接地址
p_title=re.compile('(?<=<h2.).+?(?=</h2)',re.I|re.S)
p_url=re.compile('(?<=href=.).+?(?=\")',re.I|re.S)
p_summar=re.compile('(?<=<p.).+?(?=</p)',re.I|re.S)
p_image=re.compile('/eshop/images/.+?(?=\")',re.I|re.S)
s=s+"标题:"+p_title.search(datan).group()+"\r\n"+"简介:"+p_summar.search(datan).group()+"\r\n"+"图片:"+p_image.search(datan).group()+"\r\n"+"链接地址:"+p_url.search(datan).group()+"\r\n"
f=open(r"D:\2.txt",'w')
f.write(s)
f.close()
页:
[1]